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.

Artikli relatati