gpt4 book ai didi

python-3.x - 客户端 websocket 通过代理连接

转载 作者:行者123 更新时间:2023-12-05 03:07:27 24 4
gpt4 key购买 nike

我正在使用 websockets模块,但它不支持通过我的公司代理进行客户端连接:

>>> import asyncio, websockets
>>> async def connect(uri):
... async with websockets.connect(uri) as websocket:
... pass
...
>>> asyncio.get_event_loop().run_until_complete(connect('ws://myhost.com/path/'))
....
ConnectionRefusedError: [Errno 10061] Connect call failed ('myhost.com', 80)

但是,如果将 curl 与我的 http_proxy env var 集一起使用,它会起作用:

$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Version: 13" -H "Sec-WebSocket-Key: MTIzNDEyMzQxMjM0MTIzNA==" http://myhost.com/path/
HTTP/1.1 101 Switching Protocols
Server: nginx/1.13.6
Date: Fri, 10 Nov 2017 14:51:00 GMT
Upgrade: websocket
Sec-WebSocket-Accept: s+CT5bkW5F3N2/5JUXrCPtLHn68=
Connection: Upgrade

我最好的选择是什么?其他一些用于建立客户端-websocket 连接的模块?

最佳答案

使用pip 安装 websocket-client .然后像往常一样将您的 http*_proxy 变量放在 os.environ 中。代码如下:

ws = websocket.create_connection('ws://example.com/path')
ws.send(out_data)
in_data = ws.recv()

如果您不确切知道您的代理使用什么协议(protocol),请设置两个 http*_proxy 变量,如下例所示:

$ export http_proxy=http://jonasb:password@proxyserver:8000
$ export https_proxy=https://jonasb:password@proxyserver:8000

(假设您的用户名是 jonasb,端口是 8000)。

关于python-3.x - 客户端 websocket 通过代理连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47225488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com