谁能推荐一个用于 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/