Повезивање Autobahn Twisted WSS преко HTTP проксија
Нека connectWS усклади прокси крајњу тачку и каснији TLS одредишта уместо отварања директне крајње тачке поред фабрике која познаје прокси.
Twisted крајња тачка обавља TCP везу. WebSocket фабрика конфигурисана да преговара прокси и даље треба ту крајњу тачку да би се повезала са посредником.
За постојећу Autobahn апликацију која користи свој стандардни помоћник:
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 је постојећа класа WebSocket протокола апликације. Задржите реактор и чишћење везе у животном циклусу те апликације. За јавну WSS услугу дозвољену кроз јавни посредник, листа HTTP проксија даје кандидате за прокси хост и порт фабрике.
За фабрику конфигурисану за прокси, connectWS спаја TCP на прокси и задржава TLS контекст одредишта за каснију сигурну везу. Она у почетку не обавија обичну HTTP прокси везу TLS-ом одредишта.
Прилагођени распоред HostnameEndpoint и ClientService мора сачувати исту поделу: прво се повезати на прокси, затим пустити конфигурисану фабрику да преговара циљ и успостави потребни TLS. Повезивање крајње тачке директно на events.example док њена фабрика очекује прокси разговор меша те улоге.
WebSocket URL остаје стварно одредиште услуге. Његово име хоста такође даје TLS идентитет; замена именом прокси хоста не конфигурише жељену сигурну услугу.