簡體   English   中英

客戶端訪問與來自Web服務器的廣播數據

[英]Client access vs broadcast data from web server

我正在尋找技術或技巧來修復新網站的方式。 該站點顯示讀取時間數據,這些數據以文件或內存中的形式位於服務器上。 我將在服務器端使用Node.js。 但是我無法解決如何獲取數據並將其顯示給網站用戶的問題。 因為此數據必須至少每1秒更新一次。 我認為它類似於股票價格頁面。

我知道有很多方法可以訪問數據,例如AJAX,Angular.js,Socket.io。每種方法都有其優缺點。

在這種情況下,哪個平台或框架是好的?

這最終取決於您對服務器端的控制程度。 對於需要每秒刷新的數據,在客戶端進行輪詢會給瀏覽器帶來很大的負擔。

例如,您可以通過簡單地使用許多可用框架之一在某種形式的間隔內發出http請求來實現此目的。 這種方法的缺點包括:

  • 當用戶在頁面上時,該間隔需要一直在后台運行
  • 需要為每個間隔發出http請求,以檢查數據是否已更改
  • 瀏覽器也需要進行數據比較,間隔為1秒,可能會非常繁瑣

如果你有一些服務器控件,這將是可取輪詢服務器上的數據源,即使用代理微服務,並使用服務器來執行改變檢查,只有當它已經改變了將數據發送到客戶端。

您可以使用Websockets通過“推送”樣式消息來傳達這些更改,而不必讓客戶端瀏覽器承擔繁重的工作。 流程如下:

  • 新客戶端開始偵聽其套接字時,服務器開始輪詢
  • 服務器對每個輪詢間隔發出http請求,對每個結果運行比較
  • 結果更改后,服務器會將套接字消息與新數據一起廣播到所有連接的客戶端

這樣做的主要優點是客戶端所需要做的就是“連接並監聽”。 這甚至適用於您無法控制的數據源-您提供的服務器可以在將消息發送到客戶端之前執行所需的任何數據操作,而源僅需要在請求時提供數據。

編輯 :剛剛發布了一個實現此目標的小型圖書館: Mighty Polling⚡️Socket Server 還很年輕,請檢查是否可以使用。

暫無
暫無

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

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