【发布时间】:2020-12-21 18:47:12
【问题描述】:
问题
我有一个服务器端的倒计时,需要在客户端显示。首先,我使用 socket.io 制作它,基本上每 100 毫秒发出一次。现在我真的很喜欢这个,但我担心可能会出现显着的性能降级,而只是发出一个信号并让客户端进行倒计时,但这带来了另一个问题,即在重置之前无法看到倒计时值。每 100 毫秒发射一次真的有那么糟糕吗?还是可以?
编辑
我需要它服务器端,因为所有用户的身份验证和一致性循环很小 40 秒,然后是 10 秒暂停。我需要知道用户是否在那段时间内执行了操作
【问题讨论】:
-
“直到它重置后才能看到倒计时值”是什么意思?
-
好吧,如果我发送一个信号,当计数器再次启动时,只有一个而不是数千个发送给用户。在计数器运行时加入的用户不会收到来自我的服务器的信号,并且客户端 js 不会为他们启动计时器。这意味着他们必须等待计数器重新启动并再次发送信号
-
如果不了解用例,很难知道什么是最好的。最初是什么促使您远离客户进行倒计时?在服务器端运行它试图解决什么问题?
-
“因为身份验证”?目前还不清楚您要解决什么问题。
-
如果您希望在所有客户端之间保持时间同步,那么如何在服务器中存储开始时间(可能为 UTC 以保持一致性)和倒计时持续时间,然后通过 API 返回该数据称呼?这样一来,您就不会每隔几分钟发出数千次或更多次,并且您仍然可以在前端有一个计时器,下面是 Fus_ion 的实现。
标签: javascript node.js websocket socket.io