请问,WebSocket推送消息时如何拼接历史消息?
  • 服务器端每秒发送一条消息,持续1分钟,第一次打开并使用WebSocket连接上服务器后接收消息,到第5秒时关闭浏览器
  • 第5-第10秒间的消息类似于web微信里的离线消息
  • 到第10秒时再次打开该页面,要求消息中包含第0至第10秒的历史消息,后续的消息也能append

2个回答

??
无理需求!
你第5秒到第10秒的数据哪里来。
正确做法应该是,每次连接上websocket都初始化发送一次最新10条消息,后面新消息继续推送

很简单吧。 需要服务器将每次发送的消息内容作为发送任务进行保存,在你服务器发送消息给客户端的时候,客户端回复你一个状态值,告诉你他收到了这条消息,更新数据库这个消息任务的状态,当客户端5-10s已经关闭页面的时候,客户端就不能回复消息告诉你他收到了这条消息,那么等到10s之后,客户端重新打开页面,重新连接websocket的时候,你将数据库里面的消息任务,作为历史消息再全部发送客户端。你想要的效果就达到了呀

KiterCher
KiterCher 回复SWhard: 消息队列好像不太适合你这个逻辑,直接用数据库的话,简单明了一些
一年多之前 回复
SWhard
SWhard 请问,MQ适合做这个业务吗?还是自己直接用关系数据库?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐