Autobahn Twisted WSS savienošana caur HTTP starpniekserveri
Ļaujiet connectWS saskaņot starpniekservera galapunktu un vēlāko galamērķa TLS, nevis atvērt tiešu galapunktu blakus starpniekserveri zinošai rūpnīcai.
Twisted galapunkts veic TCP savienojumu. WebSocket rūpnīca, kas konfigurēta starpniekservera sarunām, joprojām izmanto šo galapunktu, lai savienotos ar starpnieku.
Esošai Autobahn lietotnei, kas izmanto standarta palīgu:
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 ir lietotnes esošā WebSocket protokola klase. Reaktoru un savienojuma tīrīšanu turiet šīs lietotnes dzīves ciklā. Publiskam WSS pakalpojumam, kas atļauts caur publisku starpnieku, HTTP starpniekserveru saraksts nodrošina kandidātus rūpnīcas starpniekservera resursdatoram un portam.
Rūpnīcai, kas konfigurēta ar starpniekserveri, connectWS savieno TCP ar starpniekserveri un saglabā galamērķa TLS kontekstu vēlākam drošam savienojumam. Tā sākumā neietver parasto HTTP starpniekservera savienojumu galamērķa TLS.
Pielāgotam HostnameEndpoint un ClientService izkārtojumam jāsaglabā tas pats dalījums: vispirms savienoties ar starpniekserveri, pēc tam ļaut konfigurētajai rūpnīcai vienoties par mērķi un izveidot nepieciešamo TLS. Galapunkta tieša savienošana ar events.example, kamēr tā rūpnīca gaida starpniekservera sarunu, sajauc šīs lomas.
WebSocket URL paliek īstais pakalpojuma galamērķis. Tā resursdatora nosaukums nodrošina arī TLS identitāti; tā aizstāšana ar starpniekservera resursdatora nosaukumu nekonfigurē paredzēto drošo pakalpojumu.