什么是 Socket.IO?
Socket.IO 是一种传输协议,它支持客户端(通常是网络浏览器,但并非总是如此)与服务器之间进行实时双向事件驱动的通信。客户端和服务器组件的官方实现是用 JavaScript 编写的。本软件包提供了两者的 Python 实现版本,每个版本都有标准版本和基于asyncio
的版本。
版本兼容性
Socket.IO 协议历经多次修订,其中部分修订引入了不向后兼容的变化,这意味着客户端和服务器必须使用兼容版本才能正常工作。
如果同时使用 Python 客户端和服务器,确保兼容性的最简单方法是在客户端和服务器上使用本软件包的相同版本。如果将本软件包与其他客户端或服务器配合使用,则必须确保版本兼容。
以下版本兼容性图表展示了本软件包的版本与 JavaScript 参考实现版本,以及 Socket.IO 和 Engine.IO 协议版本之间的对应关系。
JavaScript Socket.IO 版本 | Socket.IO 协议修订版 | Engine.IO 协议修订版 | python - socketio 版本 | python - engineio 版本 |
---|---|---|---|---|
0.9.x | 1, 2 | 1, 2 | 不支持 | 不支持 |
1.x 和 2.x | 3, 4 | 3 | 4.x | 3.x |
3.x 和 4.x | 5 | 4 | 5.x | 4.x |
客户端示例
下面的示例展示了一个简单的 Python 客户端:
import socketio
sio = socketio.Client()
@sio.event
def connect():
print('connection established')
@sio.event
def my_message(data):
print('message received with ', data)
sio.emit('my response', {'response': 'my response'})
@sio.event