Autobahn Twisted WSS HTTP proxy baten bidez konektatzea
Utzi connectWSri proxyaren amaierako puntua eta geroagoko helmugako TLSa koordinatzen, proxyaz jabetzen den fabrika baten ondoan amaierako puntu zuzena ireki beharrean.
Twisted amaierako puntu batek TCP konexioa egiten du. Proxyarekin negoziatzeko konfiguratutako WebSocket fabrika batek amaierako puntu hori behar du oraindik bitartekariarekin konektatzeko.
Bere laguntzaile estandarra erabiltzen duen lehendik dagoen Autobahn aplikazio baterako:
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 aplikazioaren lehendik dagoen WebSocket protokolo klasea da. Mantendu erreaktorea eta konexioaren garbiketa aplikazio horren bizi-zikloaren barruan. Bitartekari publiko baten bidez baimendutako WSS zerbitzu publiko baterako, HTTP proxy zerrendak fabrikaren proxy ostalari eta atakadarrerako hautagaiak ematen ditu.
Proxyrako konfiguratutako fabrika batean, connectWSek TCP bidez proxyra konektatzen du eta helmugako TLS testuingurua gordetzen du geroagoko konexio segururako. Ez du hasieran HTTP proxy konexio arrunta helmugako TLSean biltzen.
HostnameEndpoint eta ClientService konfigurazio pertsonalizatu batek banaketa bera gorde behar du: lehenengo proxyra konektatu, gero konfiguratutako fabrikak helburua negozia dezan eta beharrezko TLSa ezar dezan. Amaierako puntua zuzenean events.example-rekin konektatzeak, bere fabrikak proxy elkarrizketa espero duenean, rol horiek nahasten ditu.
WebSocket URLak zerbitzuaren benetako helmuga izaten jarraitzen du. Bere ostalari-izenak TLS identitatea ere ematen du; proxyaren ostalari-izenarekin ordezkatzeak ez du nahi den zerbitzu segurua konfiguratzen.