Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 客户端websocket通过代理连接_Python 3.x_Websocket_Python Asyncio_Http Proxy - Fatal编程技术网

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

Python 3.x 客户端websocket通过代理连接,python-3.x,websocket,python-asyncio,http-proxy,Python 3.x,Websocket,Python Asyncio,Http Proxy,我正在使用该模块,但它不支持通过我的公司代理进行客户端连接: >>> import asyncio, websockets >>> async def connect(uri): ... async with websockets.connect(uri) as websocket: ... pass ... >>> asyncio.get_event_loop().run_until_complete(connect

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

>>> 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与my
http\u proxy
env var set一起使用,则它可以工作:

$ 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安装
。然后像平常一样,将您的
http*\u代理
变量放入
os.environ
。代码如下:

ws = websocket.create_connection('ws://example.com/path')
ws.send(out_data)
in_data = ws.recv()
如果您不确切知道代理使用的协议,请设置
http*\u proxy
变量,如下例所示:

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

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

Bystrom,我需要使用
https\u proxy
还是
http?\u proxy
?我有相同的http、https和ftp代理。您能帮助我吗?我遇到了以下错误:
websocket.\u exceptions.WebSocketProxyException:通过代理连接失败状态:503
。你能帮忙吗?我需要问新问题吗?或者呢?我记得很久以前得了503,但不幸的是,我想不起原因。检查主机名和端口。删除用户名+密码。问你的管理员。随便看看,谢谢你的回复。如果可能的话,请看一下我详细解释的问题。这是
websockets
不支持通过代理进行客户端连接。所以使用@Ahsan:你晚了几年,请看下面我对我自己问题的回答。是的,我看到了你的答案,但没有找到你离开
websockets
并转到
websocket客户端的原因。事实上,我当时的处境是在这两者之间选择一个。因此,代理是对
websockets