ربط Autobahn Twisted WSS عبر وكيل HTTP
دع 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 وجهة الخدمة الحقيقية. ويوفّر اسمه المضيف أيضاً هوية TLS؛ واستبداله باسم مضيف الوكيل لا يهيّئ الخدمة الآمنة المقصودة.