繁体   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