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 инсандыгын да берет; аны проксинин хост аты менен алмаштыруу көздөлгөн коопсуз кызматты конфигурациялабайт.

Тектеш макалалар