我有react js
,node js
和mongoDB
申请。我在mongoDB中有一个集合。
Senario:我们说同时有3个用户( A,B,C )登录。他们都在同时访问相同的集合。让C从UI中改变集合中的某些东西。
答案 0 :(得分:3)
最简单的解决方案应该是使用webSocket(您可以尝试使用socketIo)。通过这种方式,您可以告诉应用中的所有用户“收听”某些更改。作为待办事项列表中的示例,用户C将添加待办事项,服务器将收到此添加的通知,并将通过Web套接字发送给收听此特定事件的所有用户。 socket.io。希望我的回答会有所帮助。
有几种方法可以使用Socket.io。您可以从客户端向服务器发射,服务器将向其他客户端发射。 示例:
client Side (user adding a ToDo): socket.emit('message', YourTODOVariable);
Server Side: socket.on('message',function(YourTODOVariable){
//do other stuff here;
socket.broadcast.to('ToDo', YourTODOVariable)
})
Client Side (other Users): socket.on('ToDo', function(YourTODOVariable){
ToDo.push(YourTODOVariable) //-> like this everybody got the new variable.
})
我认为这是一个非常简单的例子,但我认为你可以理解这一点。
我个人喜欢的另一个解决方案是关联节点事件。作为示例,新的Http请求将触发节点事件,并将触发socket.emit到所有其他客户端侦听。
此post也可以为您提供帮助。快乐编码:)
答案 1 :(得分:1)
因此,您的方案有多种解决方案,例如:
Socket.IO:在此解决方案中,您必须管理所有客户端套接字,并且一旦服务器发出消息,将通知所有已注册的客户端。
React Redux:每隔x毫秒对数据库进行一次采样,并在应用程序中更新存储状态,因此一旦更改生效,状态的所有已注册组件都将更新。 (这是比选项1更扁平的解决方案。但有点难看)