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.

Kapcsolódó cikkek