请问,WebSocket推送消息时如何拼接历史消息?

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

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

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