HTTP ప్రాక్సీ ద్వారా Autobahn Twisted WSS కనెక్ట్ చేయండి
ప్రాక్సీ తెలిసిన ఫ్యాక్టరీ పక్కన నేరుగా ఎండ్పాయింట్ తెరవడానికి బదులు, 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 గుర్తింపును కూడా అందిస్తుంది; దాన్ని ప్రాక్సీ హోస్ట్నేమ్తో భర్తీ చేయడం ఉద్దేశించిన సురక్షిత సేవను కాన్ఫిగర్ చేయదు.