Я пытаюсь подключиться к приложению, используя websocket за корпоративным брандмауэром.
Я использую безопасные веб-сокеты и без прокси все работает просто отлично. Я искал примеры, но ни один из них не работал для меня.
from autobahn.twisted.websocket import WebSocketClientProtocol, \
WebSocketClientFactory
from twisted.internet import ssl, reactor
class MyClientProtocol(WebSocketClientProtocol):
def onConnect(self, response):
pass
def onConnecting(self, transport_details):
return None # ask for defaults
def onOpen(self):
pass
def onClose(self, wasClean, code, reason):
print(reason)
if __name__ == '__main__':
server_ip = "example.com"
server_port = 443
proxy = {'host': 'proxy', 'port': 3128} # <-- if proxy is not None, then connection is always lost with reason 'connection was closed uncleanly (None)'
factory = WebSocketClientFactory(f"wss://{server_ip}:{server_port}")
factory.protocol = MyClientProtocol
factory.proxy = proxy
reactor.connectSSL(server_ip, server_port, factory, ssl.ClientContextFactory())
reactor.run()
Не похоже, что factory.proxy поддерживается, я не вижу попыток запросов в журналах прокси, скорее, если это не None, возникает какая-то ошибка.
Как настроить прокси для защищенных веб-сокетов?
PS: автобан 19.10.1, витая 19.7.0