簡體   English   中英

MERN 堆棧中的實時通知功能

[英]Real-time notification feature in MERN stack

我正在嘗試構建一個網絡應用程序,如果用戶的帖子被點贊,用戶可以在其中收到通知。 此功能實際上有效,但通知組件僅在頁面重新加載時呈現。 但是我希望它在發生更改時立即重新呈現通知組件。 我正在嘗試在客戶端和服務器中使用 SocketIO 進行這項工作,但感覺應該有一種更簡單的方法來解決這個問題。 如何?

實現這一點的一種方法是使用服務器發送事件 (SSE) ,它可以看作是 WebSocket 的單向簡化版本(只有服務器可以向客戶端發送數據)。 您可能需要路由參數或查詢字符串,以便用戶可以連接到不同的頻道。


如果它不必如此實時(即在有人喜歡帖子后 1 分鍾收到通知是可以的),您也可以嘗試(長)輪詢。

但是,由於post-like表可能包含大量數據,因此不斷查詢它會導致服務器性能下降。 此外,添加一個額外的列來標記用戶是否已收到有關特定點贊的通知是微不足道的。

一種可能的解決方法是創建一個新表,比如pending-like-notification ,用於存儲所有待處理的類似通知。 每當一個帖子被點贊時,我們就會在這個表中插入一條新記錄。

因此,當用戶試圖查詢他的任何帖子最近是否被點贊時,在后端我們查找此表而不是post-like表,並在通知用戶后刪除選定的行,以便在數據量這張桌子可以保持低位(希望如此)。

總而言之,在這種場景下,我覺得SSE和WebSocket會是更好的選擇。

暫無
暫無

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

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