Cysylltu Autobahn Twisted WSS drwy ddirprwy HTTP
Gadewch i connectWS gydlynu pen y daith dirprwy a TLS y cyrchfan yn ddiweddarach yn lle agor pen y daith uniongyrchol wrth ymyl ffatri sy'n ymwybodol o ddirprwy.
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.