ProxyAgent voi yhdistää nopeasti ja odottaa sen jälkeen vastausrunkoa loputtomasti. Sen välityspalvelimen päätepisteen yhteysaikakatkaisu ei kuvaa tuota myöhempää odotusta.

Aseta päätepisteelle yhteysraja, kun rakennat agentin. Alla olevassa julkisessa HTTP-pyynnössä HTTP-välityspalvelinluettelosta valittu todentamaton ehdokas voi korvata osoitteen, jos julkiset välittäjät ovat sallittuja:

endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
                              timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)

Jos aiot kerätä pienen vastauksen muistiin, sisällytä rungon lukeminen Deferred-ketjuun ennen määräajan lisäämistä:

from twisted.web.client import readBody

d = agent.request(b'GET', b'http://example.com/')
d.addCallback(readBody)
d.addTimeout(10, reactor)
d.addCallback(lambda body: print(len(body)))
d.addErrback(lambda failure: print(failure.getErrorMessage()))

Katkelma olettaa, että sovelluksella on jo reactor ja määritetty agentti. ProxyAgentin pyynnön Deferred antaa vastausolion; readBody palauttaa rungon Deferredin. Sen palauttaminen callbackista saa ketjun odottamaan myös tätä toimintoa.

Sijoituksella on väliä. Twisted soveltaa addTimeoutia ennen sitä asennettujen callbackien edustamaan työhön. Rungon lukijan lisääminen sen jälkeen kuvaisi eri rajaa. Tässä järjestelyssä ajastin käynnistyy, kun addTimeout kutsutaan, ja kattaa kyseisen ketjun odottavan pyynnön ja runkotyön.

Käytä suoratoistokuluttajaa suurille tai rajattomille rungoille ja esitä sen valmistuminen samalla tavalla. Asiakaspuolen määräaika rajoittaa, kuinka kauan sovelluksesi odottaa; se ei määritä uudelleen välityspalvelimen omaa ylävirran yhteysaikakatkaisua.

Aiheeseen liittyvät artikkelit