Mongodb 用WebSocket显示计时器

Mongodb 用WebSocket显示计时器,mongodb,laravel,nginx,timer,websocket,Mongodb,Laravel,Nginx,Timer,Websocket,我有一个应用程序(在Nginx上运行的Laravel+MongoDB),我从数据库中提取一些数据并将其呈现在屏幕上。该应用程序主要关注多个真实对象。一旦对象被打开(打开等于数据库中的true),屏幕上的计时器需要开始滴答作响。一旦对象关闭(打开等于数据库中的false),时钟停止滴答并重置为0。时钟的格式是HH:MM:SS。因此,它显示了实际对象打开的时间 我的问题是,我现在真的不知道如何保存/实现这样的计时器。当用户请求页面时,我从数据库中提取必要的数据。如果我还将计时器保存在数据库中,则必须

我有一个应用程序(在Nginx上运行的Laravel+MongoDB),我从数据库中提取一些数据并将其呈现在屏幕上。该应用程序主要关注多个真实对象。一旦对象被打开(
打开
等于数据库中的
true
),屏幕上的计时器需要开始滴答作响。一旦对象关闭(
打开
等于数据库中的
false
),时钟停止滴答并重置为0。时钟的格式是HH:MM:SS。因此,它显示了实际对象打开的时间

我的问题是,我现在真的不知道如何保存/实现这样的计时器。当用户请求页面时,我从数据库中提取必要的数据。如果我还将计时器保存在数据库中,则必须每秒进行一次查询,这是一种非常糟糕的做法

我想起了一些关于WebSocket的事情,并试图对它们进行研究。实际上,我成功地构建了一个基本的Hello World聊天应用程序,但不知道如何在我的项目中实现它。数据库中没有它的位置(因为查询),所以我真的不知道在服务器上保存计时器的位置。我也怀疑WebSocket是否是一条可行之路

那么WebSockets是一条路吗?如果是的话,你们能告诉我如何实现它的正确方向吗?如果没有,你能告诉我该怎么办吗

提前谢谢

根据您的问题:

我知道您在屏幕上打印的对象是由 应用程序中的用户,而您的目标是向前迈进 对应用程序的其他活动客户端实例的修改

在这种情况下,正如您所提到的,我将向您指出WebSocket。它们是直接向客户机提供信息的好方法,因此客户机接收更新信号并修改界面,而无需用户操作

为了实现通知客户机的逻辑,我建议使用推送方法,但这实际上取决于您希望通知的客户机类型,因为推送世界仍然有点棘手

有关此基于websocket的推送实现的更多信息:

关于推送标志的问题:

如果您的客户端在浏览器或移动设备中运行,这个问题很好回答:

还有html5 WebSocket:

作为旁注:

一个很好的客户机-服务器实时通信体系结构是基于一个库,它提供了良好的性能,如果您知道自己在做什么,它的实现并不复杂。

您可以使用基于unix时间戳的服务器端计数器。这里的主要工作是在db操作发生时保持计数器更新,修改
处于打开状态。在聊天中,每次在数据库中修改对象时,您都可以收到tcp推送。推送发送方可能是Laravel代码或另一个服务器端层,负责监控数据库操作并向连接的客户端(桌面、应用程序等)发送通知。我阅读了您的信息,决定使用NodeJS和Socket.io。现在很有魅力,谢谢!