以间隔向所有连接的客户端发送数据。烧瓶插座

Send data to all connected clients with interval. Flask-socketio

我正在后台使用 Flask 创建一个在线游戏。
我在客户端有以下代码:

socket.on('get_update', function(data) {
    console.log(data);
});

在服务器端,我需要以一定的间隔(例如 0.5 秒)
向所有连接的客户端发送 online_players(dict) 我如何使用 Flask 做到这一点?

Use celery periodic task 使用 Flask-socketio。 创建一个周期性任务,该任务将在后台每秒 运行 或 0.5 秒。

可以使用 threading.Timer。类似于 JavaScript 的 setTimeout 它 运行 是 n 秒后的一个函数。在目标函数中再次调用目标上的 start 到 运行 它会定期。

https://docs.python.org/3/library/threading.html#timer-objects

timer1 = threading.Timer(5, foo)

def foo():
    print("foo")
    timer2 = threading.Timer(5, foo)

到运行foo不用等5s,直接将第1行替换为:

t1 = threading.Thread(target=foo)