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 ಗುರುತನ್ನೂ ಒದಗಿಸುತ್ತದೆ; ಅದನ್ನು ಪ್ರಾಕ್ಸಿ ಹೋಸ್ಟ್ನಾಮ್ನಿಂದ ಬದಲಿಸುವುದು ಉದ್ದೇಶಿತ ಸುರಕ್ಷಿತ ಸೇವೆಯನ್ನು ಸಂರಚಿಸುವುದಿಲ್ಲ.