SWhard
SWhard
采纳率50%
2019-01-14 14:06 阅读 1.0k

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

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

2条回答 默认 最新

  • qq_35955916 程序员的键盘 2019-01-14 14:56

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

    点赞 评论 复制链接分享
  • KiterCher KiterCher 2019-01-14 18:08

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

    点赞 评论 复制链接分享

相关推荐