Qabbad Autobahn Twisted WSS permezz ta' proxy HTTP
Ħalli lil connectWS jikkoordina l-punt tat-tmiem tal-proxy u t-TLS tad-destinazzjoni aktar tard minflok ma tiftaħ punt tat-tmiem dirett ħdejn fabbrika konxja mill-proxy.
Punt tat-tmiem Twisted jagħmel il-konnessjoni TCP. Fabbrika WebSocket konfigurata biex tinnegozja proxy xorta għandha bżonn dak il-punt tat-tmiem biex tqabbad mal-intermedjarju.
Għal applikazzjoni Autobahn eżistenti li tuża l-għajnuna standard tagħha:
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 hija l-klassi tal-protokoll WebSocket eżistenti tal-applikazzjoni. Żomm ir-reattur u t-tindif tal-konnessjoni fiċ-ċiklu tal-ħajja ta' dik l-applikazzjoni. Għal servizz WSS pubbliku permess permezz ta' intermedjarju pubbliku, il-lista tal-proxy HTTP tipprovdi kandidati għall-host u l-port tal-proxy tal-fabbrika.
Għal fabbrika konfigurata bil-proxy, connectWS iqabbad it-TCP mal-proxy u jżomm il-kuntest TLS tad-destinazzjoni għall-konnessjoni sigura aktar tard. Hija ma tgħattix il-konnessjoni normali tal-proxy HTTP fit-TLS tad-destinazzjoni fil-bidu.
Arranġament personalizzat ta' HostnameEndpoint u ClientService għandu jżomm l-istess diviżjoni: l-ewwel tqabbad mal-proxy, imbagħad il-fabbrika konfigurata tinnegozja l-mira u tistabbilixxi t-TLS meħtieġa. Li tqabbad il-punt tat-tmiem direttament ma' events.example waqt li l-fabbrika tagħha tistenna konverżazzjoni tal-proxy tħallat dawk ir-rwoli.
L-URL tal-WebSocket jibqa' d-destinazzjoni vera tas-servizz. L-isem tal-host tiegħu jipprovdi wkoll l-identità TLS; li tibdlu bl-isem tal-host tal-proxy ma jikkonfigurax is-servizz sigur maħsub.