[英]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.