【发布时间】:2023-03-28 16:31:01
【问题描述】:
我正在使用 Angular(客户端)和 Node(服务器端)开发一个 Web 应用程序。我想集成一些社交功能,包括聊天。因此,用户可以发现附近的用户并向他们发送消息。 我想知道实现这一点的最佳方法。我有一个想法,但在我看来它非常原始,我担心它会导致服务器过载。
我的想法是每分钟从客户端发送一个请求到 关于新消息的服务器
服务器在 该用户的所有对话,检查最后一条消息 每次对话的时间
服务器发回对话 有新消息
如果客户端收到带有新消息的对话,则 通知出现,因此用户可以打开聊天。
一旦打开聊天,对服务器的请求 每 3 秒(而不是 1 分钟)发送一次新消息
存储在 MongoDB 中的用户对话示例
{'conversations':
[
{'to':{'user-id':'101010', 'name':'Michela', 'location':'Alba Adriatica',
'img':'http://graph.facebook.com...jpg'
},
'last-msg':12345, //epoch
'msgs':[
{'from-me':'ciao come stai?', 'date':''},
{'from-you':'bene grazie, tu?', 'date':''},
{'from-me':'eh insomma..mi so rott lu cazz', 'date':''},
{'from-you':'dai poi vai alle Hawaii', 'date':''}
]
},
...
]
}
【问题讨论】: