我有 flask_socketIO Python 服务器:
from flask import Flask
from flask_socketio import SocketIO
import time
app = Flask(__name__)
sio = SocketIO(app)
@sio.on("client_connect")
def client_connect():
sio.emit("test")
time.sleep(1) # Should be computationally complex code: for i in range(1000000): ...
sio.emit("test")
sio.run(app)
和 socketio Python 客户端:
from socketio import Client
import time
sio = Client()
sio.connect("http://localhost:5000")
@sio.event
def test():
print("TEST socket message", time.time())
sio.emit("client_connect")
所以应该执行这些步骤:
- 客户端连接到服务器
- 客户端向服务器发送
client_connect
消息 - 服务器向
test
客户端发送消息 - 服务器等待 1 秒
- 服务器向客户端发送另
test
一条消息
1 和 2 工作,但不是下一步,服务器首先等待 1 秒,然后test
在(几乎)同一时间发送两次消息。所以客户端的输出是(在同一秒内收到两条消息):
TEST socket message 1595397405
TEST socket message 1595397405
难道我做错了什么?