HTTP proxy හරහා Autobahn Twisted WSS සම්බන්ධ කිරීම
proxy දන්නා factory එකක් අසල සෘජු endpoint එකක් විවෘත කරනවා වෙනුවට connectWS ට proxy endpoint එක සහ පසුව ගමනාන්ත TLS එක සම්බන්ධීකරණය කිරීමට ඉඩ දෙන්න.
Twisted endpoint එක TCP සම්බන්ධතාවය සිදු කරයි. proxy සමඟ සාකච්ඡා කිරීමට වින්යාස කළ WebSocket factory එකට මැදිහත්කරු සමඟ සම්බන්ධ වීමට තවමත් එම endpoint එක අවශ්ය වේ.
සිය සම්මත සහායකය භාවිත කරන පවතින 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 ප්රොටෝකෝල පන්තියයි. reactor සහ සම්බන්ධතාවයේ පිරිසිදු කිරීම එම යෙදුමේ ජීවන චක්රය තුළ තබන්න. පොදු මැදිහත්කරු හරහා අවසර ලත් පොදු WSS සේවාවක් සඳහා, HTTP proxy ලැයිස්තුව factory එකේ proxy host සහ port සඳහා අපේක්ෂකයින් සපයයි.
proxy සඳහා වින්යාස කළ factory එකක, connectWS TCP proxy වෙත සම්බන්ධ කර පසුව සුරක්ෂිත සම්බන්ධතාවය සඳහා ගමනාන්ත TLS සන්දර්භය රඳවා ගනී. එය මුලින් සාමාන්ය HTTP proxy සම්බන්ධතාවය ගමනාන්ත TLS තුළ නොවටයි.
අභිරුචි HostnameEndpoint සහ ClientService සැකැස්ම එම බෙදීමම රැක ගත යුතුය: පළමුව proxy වෙත සම්බන්ධ වී, පසුව වින්යාස කළ factory ට ඉලක්කය සාකච්ඡා කිරීමට සහ අවශ්ය TLS ස්ථාපිත කිරීමට ඉඩ දෙන්න. factory එක proxy සංවාදයක් අපේක්ෂා කරන අතර endpoint එක සෘජුවම events.example වෙත සම්බන්ධ කිරීම එම භූමිකා මිශ්ර කරයි.
WebSocket URL සේවාවේ සැබෑ ගමනාන්තය ලෙස පවතී. එහි host නාමය TLS අනන්යතාවය ද සපයයි; එය proxy host නාමයෙන් ප්රතිස්ථාපනය කිරීම අපේක්ෂිත සුරක්ෂිත සේවාව වින්යාස නොකරයි.