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 पहचान भी देता है; इसे प्रॉक्सी होस्टनाम से बदलने पर इच्छित सुरक्षित सेवा कॉन्फ़िगर नहीं होती।

संबंधित लेख