Fun ìbéèrè proxy Twisted ní àkókò ìparí fún ara rẹ̀
Darapọ̀ àkókò ìparí ìsopọ̀ ẹ̀ka ìparí proxy pẹ̀lú àkókò Deferred tí ó tún bo kíkà ara ìdáhùn kékeré.
ProxyAgent le sopọ̀ kíákíá kí ó sì dúró de ara ìdáhùn láìní àkókò. Àkókò ìparí ìsopọ̀ ẹ̀ka ìparí proxy rẹ̀ kò ṣàlàyé ìdúró yẹn ní ìgbà tó ń bọ̀.
Ṣètò ààlà ìsopọ̀ lórí ẹ̀ka ìparí nígbà tí o bá ń kọ́ aṣojú náà. Fún ìbéèrè HTTP gbangba tó wà nísàlẹ̀, olùdíje tí kò ní ìjẹ́rìí láti àkójọ proxy HTTP le rọ́pò àdírẹ́sì tí wọ́n bá gbà àwọn alárinà gbangba láàyè:
endpoint = TCP4ClientEndpoint(reactor, 'proxy.example', 8080,
timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)
Fún ìdáhùn kékeré tí o fẹ́ kó jọ mọ́ inú ìrántí, fi kíkà ara kún ẹ̀wọ̀n Deferred kí o tó fi àkókò ìparí kún un:
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()))
Ẹ̀ka yìí gbà pé ohun èlò náà ti ní reactor rẹ̀ àti aṣojú tí a ti ṣètò. Deferred ìbéèrè ProxyAgent ń fúnni ní ohun ìdáhùn; readBody ń dá Deferred fún ara padà. Dídá a padà láti inú callback jẹ́ kí ẹ̀wọ̀n náà dúró de iṣẹ́ yẹn pẹ̀lú.
Ibùdó ṣe pàtàkì. Twisted ń lo addTimeout lórí iṣẹ́ tí àwọn callback tí a fi sórí ṣáájú rẹ̀ ń ṣàpẹẹrẹ. Fífi olùkà ara kún lẹ́yìn yẹn yóò ṣàlàyé ààlà mìíràn. Nínú ìṣètò yìí, aago náà bẹ̀rẹ̀ nígbà tí a bá pe addTimeout ó sì bo ìbéèrè tó ń dúró àti iṣẹ́ ara nínú ẹ̀wọ̀n yẹn.
Lo olùlò ìṣàn fún àwọn ara ńlá tàbí aláìlópin kí o sì ṣàpẹẹrẹ ìparí rẹ̀ lọ́nà kanna. Àkókò ìparí ní ẹ̀gbẹ́ oníbàárà ń dín àkókò tí ohun èlò rẹ yóò dúró kù; kò tún ṣètò àkókò ìparí ìsopọ̀ òkè proxy fúnra rẹ̀.