Autobahn Twisted WSS-i HTTP proksisi ilə birləşdirin
Proksidən xəbərdar fabrikin yanında birbaşa son nöqtə açmaq əvəzinə, connectWS proksi son nöqtəsini və sonrakı təyinat TLS-ni əlaqələndirsin.
Twisted son nöqtəsi TCP bağlantısını yerinə yetirir. Proksi ilə danışıq aparmaq üçün konfiqurasiya edilmiş WebSocket fabriki yenə də vasitəçiyə qoşulmaq üçün həmin son nöqtəyə ehtiyac duyur.
Standart köməkçisini istifadə edən mövcud Autobahn tətbiqi üçün:
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 tətbiqin mövcud WebSocket protokol sinfidir. Reaktoru və bağlantının təmizlənməsini həmin tətbiqin həyat dövrü ilə birlikdə saxlayın. Açıq vasitəçi vasitəsilə icazə verilən açıq WSS xidməti üçün HTTP proksi siyahısı fabrikin proksi hostu və portu üçün namizədlər təqdim edir.
Proksi üçün konfiqurasiya edilmiş fabrikdə connectWS TCP ilə proksiyə qoşulur və sonrakı təhlükəsiz bağlantı üçün təyinat TLS kontekstini saxlayır. O, əvvəlcə adi HTTP proksi bağlantısını təyinat TLS-i ilə əhatə etmir.
Fərdi HostnameEndpoint və ClientService quruluşu eyni bölgünü qorumalıdır: əvvəlcə proksiyə qoşulun, sonra konfiqurasiya edilmiş fabrik hədəflə danışıq aparsın və tələb olunan TLS-i qursun. Fabriki proksi söhbəti gözləyərkən son nöqtəni birbaşa events.example-a qoşmaq bu rolları qarışdırır.
WebSocket URL-i əsl xidmət təyinatı olaraq qalır. Onun host adı həm də TLS kimliyini təmin edir; onu proksi host adı ilə əvəz etmək nəzərdə tutulan təhlükəsiz xidməti konfiqurasiya etmir.