搜索了一些资料, 感觉应该可以做。
推送服务用nodejs+socket.io做, 记录在线用户和离线消息交给redis。
一对一, 客户 A给客户 B推消息。 客户 B不在线。 记录到redis中。 并且做持久化防止丢失。
但是一对多, 有点懵。 客户 A给广播给所有人。 在线的兄弟直接转发,
不在线的兄弟们, 我怎么知道有那些。 并且给他们记录离线消息呢?
必须完整的把当前所有用户的 uid 查出来, 预存到redis。 在线用户发了出栈。 剩余全部存离线消息?
或者一开始查询出所有用户 uid, 存起来, 在线的用户修改状态, 非在线的存离线消息。 如何做到和数据库里的成员表同步呢? 毕竟每分钟都可能发生注册。
这两天对这类东西很感兴趣, 想试着做一个。 想不通, 请各位大佬解答。