Autobahn Twisted WSS csatlakoztatása HTTP-proxyn keresztül
Hagyja, hogy a connectWS hangolja össze a proxy végpontját és a későbbi cél-TLS-t, ahelyett hogy közvetlen végpontot nyitna egy proxy-tudatos gyár mellett.
A Twisted végpont végzi a TCP-kapcsolatot. A proxy egyeztetésére beállított WebSocket-gyárnak továbbra is szüksége van erre a végpontra a közvetítőhöz való csatlakozáshoz.
Egy meglévő Autobahn-alkalmazás esetében, amely a szokásos segédprogramját használja:
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,
)
Az ApplicationProtocol az alkalmazás meglévő WebSocket-protokoll osztálya. Tartsa a reaktort és a kapcsolat takarítását az adott alkalmazás életciklusában. Egy nyilvános közvetítőn keresztül engedélyezett nyilvános WSS-szolgáltatáshoz a HTTP-proxy lista jelölteket kínál a gyár proxy hosztjához és portjához.
A proxyhoz beállított gyár esetében a connectWS TCP-vel kapcsolódik a proxyhoz, és megőrzi a cél TLS-kontextusát a későbbi biztonságos kapcsolathoz. Kezdetben nem csomagolja a szokásos HTTP-proxy kapcsolatot a cél TLS-ébe.
Az egyedi HostnameEndpoint- és ClientService-elrendezésnek ugyanezt a felosztást kell megőriznie: először a proxyhoz kapcsolódni, majd hagyni, hogy a beállított gyár egyeztesse a célt, és létrehozza a szükséges TLS-t. Ha a végpont közvetlenül az events.example-hoz kapcsolódik, miközben a gyár proxy-beszélgetést vár, az összekeveri ezeket a szerepeket.
A WebSocket URL továbbra is a szolgáltatás valódi célja. A hosztneve a TLS-identitást is biztosítja; a proxy hosztnevével való helyettesítése nem állítja be a szándékolt biztonságos szolgáltatást.