使用 MongoDB Nodejs Socket.io 和 Redux 保存联系人/消息历史记录的私人聊天应用程序

时间:2021-04-14 12:22:34

标签: node.js reactjs mongodb redux socket.io

我对套接字很陌生,所以我来这里是为了寻求一些好的实践想法。 为了更好地理解我想在这里实现的目标是我的想法:我在 react 中制作了一个产品创建页面,其中有一个卖家和一个选项“向卖家发送消息”。买家点击此按钮后,我想在两个用户之间进行私聊。

我想在我的 MongoDB 数据库中保存这个套接字连接和用户之间的所有消息。因此,每当用户离开网站时,所有收到的联系人/消息都会被保存,当他重新加入时,可以使用预加载的聊天记录继续聊天。

所以我想创建一个消息集合并将套接字详细信息存储在这样的文档中:

_id:ObjectId("123")
productId:1
sender:id1
reciever:id2
messages=[{1:"Hey},
          {2:"Nice to meet you"} ...]

这里是 redux 部分:当用户登录时,我想获取所有以前的联系人和消息,以便他可以继续与他们聊天。但是每次都需要时间来获取消息历史记录,所以我考虑使用 redux 存储从数据库中获取联系人和历史记录并存储在那里。像这样

recievedmessages=[{_id:ObjectId("123") 
                 productId:1
                 sender:id1 
                  reciever:id2
                  messages=[{1:"Hey},{2:"Nice to meet you"} ...]},
                 {othermessage1 ...},
                 {othermessage2 ...},
                 ]
sentMessages=[{sentmessag1, sentmessage2, sentmessage3}]

当买家向该用户发送新消息时,我会为买家更新我的 redux 存储,当卖家也收到来自套接字更新的消息时,最后我在我的 mongodb 消息字段中为该特定文档的聊天历史记录. --> 我不确定这部分是否需要管理

这是一个很好的做法,或者我应该如何使其有效并存储数据?提前致谢。

0 个答案:

没有答案
相关问题