python - socketIO 客户端无法连接到服务器

标签 python socket.io

我目前正在尝试连接到 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/

相关文章:

javascript - 对象匹配的返回值

javascript - 如何使用socket_id单独发送给客户端?

python - scikit-learn - 类型错误 : fit() missing 1 required positional argument: 'y'

python - 如何在 1.4.2 版本中执行 django syncdb?

node.js - 客户端未握手客户端应重新连接,socket.io 在集群中

java - Socket.io 类异常

database - Microsoft SQL 数据库的 WebSocket 监听器

python - 使用 Fabric 对 git 存储库的权限被拒绝

python - [sock] = func() 是什么意思?

python - Django Form : When rendering 'js' attribute in Media class, Django 在每个标题字母上调用 <script>?