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 ഐഡന്റിറ്റിയും നൽകുന്നു; അത് പ്രോക്സി ഹോസ്റ്റ്നെയിം കൊണ്ട് മാറ്റുന്നത് ഉദ്ദേശിച്ച സുരക്ഷിത സേവനം കോൺഫിഗർ ചെയ്യുന്നില്ല.

അനുബന്ധ ലേഖനങ്ങൾ