发布于 1970-01-01 08:00
  • 3 个回答
    • 你的问题是如何在Redis中保存消息。针对你的需求,要能有推送列表,同时还需要保存未读已读状态。
      我的方案是分开,将推送消息列表和消息列表分开,即每个用户保存一个需要推送的消息列表,以及一个该用户的历史消息列表。
      对于消息推送列表无需保存任何状态,推送过去后就从列表移除,不管用户是否读取,在推送下发的同时将该消息添加到用户的历史消息列表,这里可以保存消息的读取状态。
      历史消息列表不建议使用队列,建议分两个数据结构保存,由于消息列表显示是根据时间序,所以可以使用redis的有序列表,得分为时间戳,使用这个有序列表保存用户的消息列表(仅保存ID,方便查询分页),然后消息的具体信息,如内容、读取状态、时间、发送人等保存到一个hash结构中,key就是消息ID。


      欢迎指正

      2022-12-01 11:22 回答
    • 写长连接服务常用的还是socket.io 提供了方便的api去管理连接,并且并发处理的也比较好,不论点对点推送还是群推。SF的消息推送用的就是这个=W=。推送消息或接受客户端消息流量大的话可以搭一个Redis的消息队列,将socket服务和其他后端模块打通。
      http://socket.io/

      2022-12-01 11:22 回答
    • 欢迎参考NoNOIM

      2022-12-01 11:22 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有