python - Python 中的 Socket.IO 客户端库

标签 python client-server socket.io

谁能推荐一个用于 Python 的 Socket.IO 客户端库? 我环顾四周,但唯一能找到的要么是服务器实现,要么依赖于诸如 Twisted 之类的框架。

我需要一个不依赖其他框架的客户端库。

仅仅使用多种连接类型中的一种是不够的,因为 python 客户端需要与多个 socketio 服务器一起工作,例如,其中许多服务器不支持 websocket。

最佳答案

Archie1986 的回答很好,但由于 socketio 更新已经过时(更具体地说,它的协议(protocol):https://github.com/LearnBoost/socket.io-spec)...据我所知,您需要手动执行握手,然后才能请求传输(例如,websockets) 连接...请注意,下面的代码不完整且不安全...一方面,它忽略了握手响应中返回的支持传输列表,并且总是尝试获取 websocket...它还假设握手总是成功...不过,这是一个很好的起点

import websocket, httplib

...

'''
    connect to the socketio server

    1. perform the HTTP handshake
    2. open a websocket connection '''
def connect(self) :
    conn  = httplib.HTTPConnection('localhost:8124')
    conn.request('POST','/socket.io/1/')
    resp  = conn.getresponse() 
    hskey = resp.read().split(':')[0]

    self._ws = websocket.WebSocket(
                    'ws://localhost:8124/socket.io/1/websocket/'+hskey,
                    onopen   = self._onopen,
                    onmessage = self._onmessage)

....

您可能还想阅读 python-websockets:https://github.com/mtah/python-websocket

关于python - Python 中的 Socket.IO 客户端库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4762086/

相关文章:

python - 删除时django-dynamic-formset问题

python - 类型错误 : Expected bytes in Flask app

java - 客户端/服务器,异常 : StreamCorruptedException: invalid stream header: 75720002

c# - 构建客户端-服务器 Windows 应用程序

node.js - 在带有 iisnode 的虚拟目录中运行的 Node.js Express 3 应用程序的 socket.io 路由问题

python - 为 Python 数据类编写装饰器

使用 IPython 时,python 推特模块在 __init__ 期间看不到 _file_cache 加载

c - 通过套接字发送图片文件时,为什么字节有所不同?

javascript - Heroku 返回 400 错误请求响应 (Socket.IO Node.js)

sockets - 可以用ack实现socket.io,如果服务端没有收到ack,服务端再尝试发出事件?