簡體   English   中英

ReactJS消息服務

[英]ReactJS Messaging Service

背景:

我正在使用AWS cognito,dynamo和S3構建reactJS應用程序。 該應用程序基於招聘部門,雇主和雇員可以在該部門分別發布和查看職位。 員工申請工作時,雇主可以查看員工資料並決定是否向其發送消息。 員工和雇主通過現場消息服務進行交談。



問題:

促進用戶聊天的最佳方法是什么?

即,什么是存儲消息並在用戶收到新消息時通知用戶的好方法。

我們當前的方法是在網站上設置setTimeout()並檢查是否有新消息,但這效率很低,因此我正在尋找一些指導。

我想盡可能地留在亞馬遜基礎設施中,但是我願意接受所有建議。

我目前正在為正在工作的初創公司構建類似的東西。 我們的React應用程序由node.js服務器提供服務,而API后端則由帶有drf的django API提供。 與您的用戶聊天情況一樣,我們需要處理一些到達前端的實時數據。

我們的方法

該解決方案可以分為服務器間和服務器瀏覽器實時通信:

我們使用redis(確切地說是aws elasticache)作為發布/訂閱消息隊列,將傳入的數據從API后端推送到nodejs服務器。 具體而言,無論何時由於HTTP POST調用而創建了所討論模型的實例(即,在您的情況下,該消息已發送到服務器),我們都會在特定於關注參與者的通道上發布JSON序列化信息。

在node.js服務器上,我們訂閱感興趣的頻道並實時從后端接收信息。 然后,我們使用socket.io提供到前端的websocket連接,該前端可以輕松地與React集成。

這種方法的局限性

您不能簡單地將自己的React應用程序作為S3的靜態網站進行服務器,而必須依靠Node x React方法。 react-boilerplat (我認為是Max Stoiber)是一個很好的開始。

此外,您還可以端對端使用websocket。 我們使用這種方法,因為我們的數據源不是瀏覽器,而是受限制的設備。

希望有幫助!

暫無
暫無

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

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