簡體   English   中英

使用WebSockets顯示計時器

[英]Showing timer with WebSockets

我有一個應用程序(在Nginx上運行的Laravel + MongoDB),在其中我從數據庫中提取一些數據並將其呈現在屏幕上。 該應用程序專注於多個現實生活中的對象。 一旦打開對象( is_on在數據庫中等於true ),則屏幕上的計時器需要開始計時。 一旦關閉對象(數據庫中的is_on等於false ),時鍾就會停止滴答並重置為0。時鍾的格式為HH:MM:SS。 因此它顯示了現實對象打開了多長時間。

我的問題是我現在真的不知道如何保存/實現這種計時器。 當用戶請求頁面時,我從數據庫中提取了必要的數據。 如果我也將計時器保存在數據庫中,則必須每秒查詢一次,這是非常不好的做法。

我想起了有關WebSockets的一些知識,並嘗試對其進行研究。 我實際上設法構建了一個基本的Hello World聊天應用程序,但實際上並不知道如何在我的項目中實現該應用程序。 在數據庫中沒有它的位置(由於查詢),所以我真的不知道該計時器在服務器上的保存位置。 我也懷疑WebSockets是否可行。

那么WebSockets是可行的方法嗎,如果可以,你們能為我指出實現該方法的正確方向嗎? 如果沒有,您能建議我該怎么辦?

提前致謝!

根據您的問題:

我了解您在屏幕上打印的對象是由應用程序中的用戶修改的,您的目標是將這些修改轉發到應用程序的其他活動客戶端實例。

如您提到的那樣,在這種情況下,我將向您介紹websockets。 它們是直接將信息提供給客戶端的好方法,因此客戶端無需用戶操作就可以接收更新信號並修改界面。

為了實現通知客戶端的邏輯,我建議使用推送方法,但這實際上取決於您要通知的客戶端類型,因為推送世界仍然有些棘手。

有關此基於websocket的推送實現的進一步閱讀:

有關推旗的問題:
TCP中的推送和緊急標志之間的區別

如果您的客戶端在瀏覽器或移動設備上運行,則很高興閱讀此問題:
如何將推送通知發送到Web瀏覽器?

也是html5 websockets:
http://www.websocket.org/aboutwebsocket.html

作為旁注:
客戶端-服務器實時通信的一種很好的體系結構是基於node.jssocket.io庫的,它們提供了良好的性能,並且如果您知道自己的工作,則實現起來並不復雜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM