我是nodejs和socket.io的新手。
我试图在我(管理员)单击“开始”按钮后同时为所有用户启动一个计时器(以秒和毫秒为单位)。所有用户的计时器也应同时结束。如果用户单击按钮后进入计时器页面,则计时器不应从头开始。
我已经知道如何在js中实现计时器。
我也有定时器状态的redux状态,尽管我不确定是否需要它。
我正在为我的应用程序使用react,redux,redux-persist,nodejs,expressjs,socket.io,mongodb。
我没有任何适当的代码,因为我仍然不确定应该如何实现。
答案 0 :(得分:0)
您可以在接收到来自您的React客户端的请求socket.io事件说“ global_timer_request”时启动计时器代码。我不知道是否有任何反应客户。只是一个想法。
在您的计时器代码中,您只需要通过socket.io广播带有定时对象有效负载的常规“ global_timer_broadcast”(又是一个虚名)事件链。
socket.io emit/ broadcast cheatsheet
当您的用户打开计时器页面时,您的客户端只需捕获广播事件并将其显示。您还可以使用房间和名称空间来扩展此计时器。
socket.io rooms and namespaces
我不知道我是否足够理解。
What's the difference between io.sockets.emit and broadcast? Update all clients using Socket.io?