【发布时间】:2014-01-13 19:40:30
【问题描述】:
我是一个没有经验的开发者,我刚开始学习node.js socket.io。
如果他们的墙上有帖子或有人回复(评论)了用户的帖子,我想为每个用户发出通知,就像在 fac*book/go*gle+ 通知中一样。
我按照这里的教程http://www.codesizzle.com/node-js-and-socket-io/
我将它与 laravel4 和 redis 结合作为将消息/通知发布到 redis 的处理程序,然后 nodejs 将侦听 redis,如果有 post/event 然后使用套接字 io 将其发送到用户的浏览器
根据我的理解,例子:
- userA 向 userB 发布内容
- userB 收到“用户 A 在您的墙上发布了一些东西”的通知
实现这一目标:
- 我需要让 userB 订阅自己的频道,可能使用他的 id
- 那么当 userA 发布内容时,laravel4 将收到 ajax 发布数据
- laravel 将帖子插入 MySQL 并将用户的 id + 他的帖子发布到 redis
- 之后,nodejs 将接收到事件并将其发布到用户 B 的浏览器。
我的问题在我的声明中 “userB 订阅了自己的频道,可能使用他的 id。” 这意味着 userB 可能会订阅频道 notif-channel-{userId} -> notif-channel-967 ,如果我有成千上万的用户,那么我将拥有数千个不同的频道,可能从 notif-channel-1 到 notif-channel-50000,
会成为问题吗?
最佳做法是什么?
流程是否已经正确?
谢谢
注意:抱歉英语不好。
更新
阅读更多文章后,我想我将流程更改为:
- UserA 在 UserB 的墙上发帖
- 然后将 ajax 帖子发送到 laravel,以便我可以将消息/帖子放入数据库
- 在向在 nodejs 服务器上工作的 socketio 发送/推送事件以处理该事件并将其推送到用户 B 的频道之后,告诉用户 B 用户 A 发布了一些内容
- 如果成功则通知 UserA 他的帖子已成功
注意我上面的流程没有涉及redis,有什么反馈吗?
【问题讨论】:
标签: node.js laravel notifications redis socket.io