管理员单击按钮后为所有用户启动倒数计时器(react、redux、socket.io)

Posted

技术标签:

【中文标题】管理员单击按钮后为所有用户启动倒数计时器(react、redux、socket.io)【英文标题】:start a countdown timer for all users after admin clicks a button (react, redux, socket.io) 【发布时间】:2020-04-10 19:20:26 【问题描述】:

我是 nodejs 和 socket.io 的新手。 在我(管理员)单击“开始”按钮后,我正在尝试同时为所有用户启动一个计时器(以秒和毫秒为单位)。计时器也应该同时为所有用户结束。如果用户在点击按钮后进入计时器页面,计时器不应该为他/她从头开始。 我已经知道如何在 js 中实现计时器。 我也有一个用于计时器状态的 redux 状态,但我不确定我是否需要它。 我正在为我的应用程序使用 react、redux、redux-persist、nodejs、expressjs、socket.io、mongodb。 我没有任何合适的代码,因为我仍然不确定我应该如何实现它。

【问题讨论】:

【参考方案1】:

您可以在收到来自您的反应客户端的请求 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?

【讨论】:

以上是关于管理员单击按钮后为所有用户启动倒数计时器(react、redux、socket.io)的主要内容,如果未能解决你的问题,请参考以下文章

在按钮上显示倒数计时器

如何在Android中制作倒数计时器?

如何让我的倒数计时器重置为每次视图加载时?

如何在Xamarian iOS应用程序中单击按钮后X秒触发事件?

如何通过在倒数计时器中按住按钮来添加值

在 Nodejs Express 应用程序中单击按钮时启动/停止 cronjob