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 ઓળખ પણ પૂરું પાડે છે; તેને પ્રોક્સી હોસ્ટનામથી બદલવાથી ઇચ્છિત સુરક્ષિત સેવા ગોઠવાતી નથી.

સંબંધિત લેખો