我目前正在尝试连接到 socketIO 服务器,就像在这个 JavaScript 中一样:
var socket = io('https://beta.glws.org')
这是不起作用的 Python 部分:
from socketIO_client import SocketIO, BaseNamespace
s = SocketIO('https://beta.glws.org', 80,
verify=False,
headers={'Sec-WebSocket-Key': 'BtvJh6zvB4ILSo0sqIOntQ=='},
cookies={'io': 'SCdIBbDOGDXhUBOZAkhM',
'gat': '1',
'ga': 'GA1.2.1442748168.1463601401'
},
)
Cookie 和 header 是从工作站点的调试中转储的,但结果与没有它们的结果相同。
调试级别的日志结果:
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): beta.glws.org
WARNING:root:beta.glws.org:80/socket.io [waiting for connection] [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:590)
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (2): beta.glws.org
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (3): beta.glws.org
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (4): beta.glws.org
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (5): beta.glws.org
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (6): beta.glws.org
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (7): beta.glws.org
我做错了什么?为什么要启动这么多新的 https 连接?
最佳答案
我认为问题是您在使用端口 80 时指定了 https 地址。端口 80 用于 http,端口 443 用于 https。
这是您应该更改的代码行的一部分。
'https://beta.glws.org', 80,
您可以为地址和端口 80 使用 http 协议(protocol),也可以将端口更改为 443 并保持地址不变。
关于python - socketIO 客户端无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310972/