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

सम्बन्धित लेखहरू