搜索了一些资料, 感觉应该可以做。
推送服务用nodejs+socket.io做, 记录在线用户和离线消息交给redis。
一对一, 客户 A给客户 B推消息。 客户 B不在线。 记录到redis中。 并且做持久化防止丢失。
但是一对多, 有点懵。 客户 A给广播给所有人。 在线的兄弟直接转发,
不在线的兄弟们, 我怎么知道有那些。 并且给他们记录离线消息呢?
必须完整的把当前所有用户的 uid 查出来, 预存到redis。 在线用户发了出栈。 剩余全部存离线消息?
或者一开始查询出所有用户 uid, 存起来, 在线的用户修改状态, 非在线的存离线消息。 如何做到和数据库里的成员表同步呢? 毕竟每分钟都可能发生注册。
这两天对这类东西很感兴趣, 想试着做一个。 想不通, 请各位大佬解答。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.