在管理员点击按钮(react,redux,socket.io)后,为所有用户启动一个倒数计时器

时间:2019-12-18 09:06:20

标签: node.js reactjs redux socket.io redux-persist

我是nodejs和socket.io的新手。

我试图在我(管理员)单击“开始”按钮后同时为所有用户启动一个计时器(以秒和毫秒为单位)。所有用户的计时器也应同时结束。如果用户单击按钮后进入计时器页面,则计时器不应从头开始。

我已经知道如何在js中实现计时器。

我也有定时器状态的redux状态,尽管我不确定是否需要它。

我正在为我的应用程序使用react,redux,redux-persist,nodejs,expressjs,socket.io,mongodb。

我没有任何适当的代码,因为我仍然不确定应该如何实现。

1 个答案:

答案 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?