Et Twisted-endepunkt utfører TCP-tilkoblingen. En WebSocket-fabrikk som er konfigurert til å forhandle en proxy, trenger fortsatt dette endepunktet for å koble til mellommennen.

For en eksisterende Autobahn-applikasjon som bruker standardhjelperen:

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 er applikasjonens eksisterende WebSocket-protokollklasse. Hold reaktoren og oppryddingen av tilkoblingen innenfor den applikasjonens livssyklus. For en offentlig WSS-tjeneste som er tillatt gjennom en offentlig mellommann, leverer HTTP-proxylisten kandidater for fabrikkens proxyvert og -port.

For en fabrikk konfigurert med proxy kobler connectWS TCP til proxyen og beholder destinasjonens TLS-kontekst for den senere sikre tilkoblingen. Den pakker ikke først den vanlige HTTP-proxytilkoblingen inn i destinasjonens TLS.

Et tilpasset oppsett av HostnameEndpoint og ClientService må bevare samme inndeling: koble til proxyen først, deretter la den konfigurerte fabrikken forhandle målet og etablere den nødvendige TLS-en. Å koble endepunktet direkte til events.example mens fabrikken forventer en proxysamtale blander disse rollene.

WebSocket-URL-en forblir tjenestens egentlige destinasjon. Vertsnavnet gir også TLS-identiteten; å erstatte det med proxyens vertsnavn konfigurerer ikke den tiltenkte sikre tjenesten.

Relaterte artikler