Mae pen y daith Twisted yn gwneud y cysylltiad TCP. Mae ffatri WebSocket a gyfluniwyd i drafod dirprwy yn dal i fod angen y pen hwnnw i gysylltu â'r cyfryngwr.

Ar gyfer rhaglen Autobahn bresennol sy'n defnyddio ei chynorthwyydd safonol:

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 yw dosbarth protocol WebSocket presennol y rhaglen. Cadwch y reactiwr a glanhau'r cysylltiad o fewn cylch bywyd y rhaglen honno. Ar gyfer gwasanaeth WSS cyhoeddus a ganiateir drwy gyfryngwr cyhoeddus, mae'r rhestr dirprwyon HTTP yn darparu ymgeiswyr ar gyfer gwesteiwr a phorth y dirprwy yn y ffatri.

Ar gyfer ffatri wedi'i chyflunio â dirprwy, mae connectWS yn cysylltu TCP i'r dirprwy ac yn cadw cyd-destun TLS y cyrchfan ar gyfer y cysylltiad diogel nesaf. Nid yw'n lapio cysylltiad HTTP dirprwy cyffredin yn TLS y cyrchfan i ddechrau.

Rhaid i drefniant HostnameEndpoint a ClientService cyfaddas gadw'r un rhaniad: cysylltu â'r dirprwy yn gyntaf, yna gadael i'r ffatri gyfluniedig drafod y targed a sefydlu'r TLS sydd ei angen. Mae cysylltu pen y daith yn uniongyrchol ag events.example tra bod ei ffatri'n disgwyl sgwrs dirprwy yn cymysgu'r rolau hynny.

Mae URL y WebSocket yn parhau i fod yn gyrchfan go iawn y gwasanaeth. Mae ei enw gwesteiwr hefyd yn darparu hunaniaeth TLS; nid yw ei ddisodli gan enw gwesteiwr y dirprwy yn cyflunio'r gwasanaeth diogel a fwriadwyd.

Erthyglau cysylltiedig