Twisted galinis taškas atlieka TCP ryšį. WebSocket gamykla, sukonfigūruota derėtis dėl tarpinio serverio, vis tiek naudoja tą galinį tašką, kad prisijungtų prie tarpininko.

Esamai Autobahn programai, naudojančiai standartinį pagalbinį įrankį:

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 yra esama programos WebSocket protokolo klasė. Reaktorių ir ryšio išvalymą laikykite tos programos gyvavimo cikle. Viešajai WSS paslaugai, leidžiamai per viešą tarpininką, HTTP tarpinių serverių sąrašas pateikia kandidatus gamyklos tarpinio serverio hostui ir prievadui.

Gamyklai, sukonfigūruotai su tarpiniu serveriu, connectWS sujungia TCP su tarpiniu serveriu ir išsaugo paskirties TLS kontekstą vėlesniam saugiam ryšiui. Ji iš pradžių neapgaubia įprasto HTTP tarpinio serverio ryšio paskirties TLS.

Pasirinkta HostnameEndpoint ir ClientService struktūra turi išlaikyti tą patį padalijimą: pirmiausia prisijungti prie tarpinio serverio, tada leisti sukonfigūruotai gamyklai derėtis dėl tikslo ir nustatyti reikiamą TLS. Galinio taško prijungimas tiesiogiai prie events.example, kai jo gamykla tikisi pokalbio per tarpinį serverį, sumaišo šiuos vaidmenis.

WebSocket URL išlieka tikroji paslaugos paskirtis. Jos hosto vardas taip pat suteikia TLS tapatybę; pakeitus jį tarpinio serverio hosto vardu, numatyta saugi paslauga nesukonfigūruojama.

Susiję straipsniai