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 ਪਛਾਣ ਵੀ ਦਿੰਦਾ ਹੈ; ਇਸਨੂੰ ਪ੍ਰੌਕਸੀ ਹੋਸਟਨਾਮ ਨਾਲ ਬਦਲਣ 'ਤੇ ਇੱਛਤ ਸੁਰੱਖਿਅਤ ਸੇਵਾ ਸੰਰਚਿਤ ਨਹੀਂ ਹੁੰਦੀ।