Një pikë fundore Twisted kryen lidhjen TCP. Një fabrikë WebSocket e konfiguruar për të negociuar një proxy ka ende nevojë për atë pikë fundore për t'u lidhur me ndërmjetësin.

Për një aplikacion Autobahn ekzistues që përdor ndihmësin e tij standard:

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 është klasa ekzistuese e protokollit WebSocket të aplikacionit. Mbani reaktorin dhe pastrimin e lidhjes brenda ciklit të jetës së atij aplikacioni. Për një shërbim publik WSS të lejuar përmes një ndërmjetësi publik, lista e proxy-ve HTTP ofron kandidatë për hostin dhe portën e proxy-t të fabrikës.

Për një fabrikë të konfiguruar me proxy, connectWS lidh TCP-n me proxy-n dhe ruan kontekstin TLS të destinacionit për lidhjen e sigurt të mëvonshme. Fillimisht nuk e mbështjell lidhjen e zakonshme HTTP të proxy-t me TLS-n e destinacionit.

Një rregullim i personalizuar i HostnameEndpoint dhe ClientService duhet të ruajë të njëjtën ndarje: së pari lidhu me proxy-n, pastaj lëre fabrikën e konfiguruar të negociojë objektivin dhe të vendosë TLS-n e nevojshme. Lidhja e pikës fundore drejtpërdrejt me events.example ndërsa fabrika e saj pret një bisedë proxy i përzien këto role.

URL-ja e WebSocket mbetet destinacioni i vërtetë i shërbimit. Emri i saj i hostit ofron gjithashtu identitetin TLS; zëvendësimi i tij me emrin e hostit të proxy-t nuk konfiguron shërbimin e sigurt të synuar.

Artikuj të ngjashëm