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 ինքնությունը. վստահված սերվերի հոսթի անունով փոխարինելը չի կարգավորում նախատեսված անվտանգ ծառայությունը։