So Autobahn Twisted WSS pọ̀ mọ́ HTTP proxy
Jẹ́ kí connectWS ṣe àkójọpọ̀ ojú-opópónà proxy àti TLS ìlú-ọ̀nà tó ń bọ̀ lẹ́yìn dípò ṣíṣí ojú-opópónà tààrà lẹ́gbẹ̀ẹ́ ilé-iṣẹ́ tó mọ proxy.
Ojú-opópónà Twisted ni ó ń ṣe ìsopọ̀ TCP. Ilé-iṣẹ́ WebSocket tí a ṣètò láti bá proxy sọ̀rọ̀ ṣì nílò ojú-opópónà yẹn láti so mọ́ alárinà.
Fún ètò Autobahn tó wà tẹ́lẹ̀ tí ó ń lo olùrànlọ́wọ́ àkọ́kọ́ rẹ̀:
from autobahn.twisted.websocket import WebSocketClientFactory, connectWS
from twisted.internet import ssl
factory = WebSocketClientFactory(
'wss://events.example/channel',
proxy={'host': 'proxy.example', 'port': 8080},
)
factory.protocol = ApplicationProtocol
connector = connectWS(
factory,
contextFactory=ssl.optionsForClientTLS('events.example'),
timeout=10,
)
ApplicationProtocol ni kíláàsì ìlànà WebSocket tí ètò náà ní tẹ́lẹ̀. Pa reactor àti ìmọ́tótó ìsopọ̀ mọ́ nínú ìgbésí-ayé ètò yẹn. Fún iṣẹ́ WSS gbogboèèyàn tí a gbà láàyè nípasẹ̀ alárinà gbogboèèyàn, àkọsílẹ̀ proxy HTTP ń pèsè àwọn olùdíje fún host àti port proxy ilé-iṣẹ́ náà.
Fún ilé-iṣẹ́ tí a ṣètò pẹ̀lú proxy, connectWS so TCP mọ́ proxy ó sì pa ipò TLS ìlú-ọ̀nà mọ́ fún ìsopọ̀ ààbò tó ń bọ̀. Ní ìbẹ̀rẹ̀ kò fi TLS ìlú-ọ̀nà wé ìsopọ̀ proxy HTTP lasan.
Ètò HostnameEndpoint àti ClientService àkànṣe gbọ́dọ̀ pa ìpín yẹn mọ́: kọ́kọ́ so mọ́ proxy, lẹ́yìn náà jẹ́ kí ilé-iṣẹ́ tí a ṣètò bá ibi-àfojúsùn sọ̀rọ̀ kí ó sì fi TLS tó yẹ múlẹ̀. Sísopọ̀ ojú-opópónà tààrà mọ́ events.example nígbà tí ilé-iṣẹ́ rẹ̀ ń retí ìjíròrò proxy ń dà àwọn ipa yẹn pọ̀.
URL WebSocket ṣì jẹ́ ibi-àfojúsùn iṣẹ́ gidi. Orúkọ host rẹ̀ tún ń pèsè ìdánimọ̀ TLS; yíyí rẹ̀ padà pẹ̀lú orúkọ host proxy kò ṣètò iṣẹ́ ààbò tí a ní lọ́kàn.