我是一名经验不足的开发人员,刚开始学习node.js和socket.io。
我想为每个用户制作通知,如果他们的墙上有帖子或有人回复(评论)了用户的帖子,就像脸*书/谷*歌+通知那样。
我在这里遵循教程 http://www.codesizzle.com/node-js-and-socket-io/。
我将它与laravel4和redis结合使用,redis作为发布消息/通知到redis的处理程序,然后nodejs将侦听redis,如果有post/event,然后使用socket io将其发送到用户的浏览器。
根据我的理解,例如:
1.用户A向用户B发布内容 2.用户B收到消息,说“用户A已在您的墙上发布了内容”
为了实现这一目标:
我需要让用户B订阅自己的频道,可能使用他的ID,然后当用户A发布某些内容时,laravel4将接收ajax post数据,将文章插入MySQL,并将用户的ID + 他的文章发布到redis,之后nodejs将接收事件并将其发布到用户B的浏览器。
我的问题是在我的语句中,“userB订阅自己的频道,可能使用他的id。”这意味着用户B将订阅频道,例如notif-channel-{userId}-> notif-channel-967,如果我有成千上万的用户,那么我将拥有成千上万个不同的通道,可能从notif-channel-1直到notif-channel-50000,
这会成为一个问题吗?
最佳实践是什么?
流程已正确吗?
谢谢你。
注:抱歉英文不好。
更新:
阅读了更多文章后,我认为我会改变流程:
1.用户A在用户B的墙上发布内容 2.然后将ajax post发送给laravel,以便我可以将消息/帖子放入数据库中 3.之后向socketio发送事件来处理正在运行的nodejs服务器,将其推送到用户B的频道,并告诉用户B用户A已发布内容 4.如果成功,则通知用户A他的帖子成功
请注意,我不涉及redis在上述流程中,有任何反馈吗?
我想为每个用户制作通知,如果他们的墙上有帖子或有人回复(评论)了用户的帖子,就像脸*书/谷*歌+通知那样。
我在这里遵循教程 http://www.codesizzle.com/node-js-and-socket-io/。
我将它与laravel4和redis结合使用,redis作为发布消息/通知到redis的处理程序,然后nodejs将侦听redis,如果有post/event,然后使用socket io将其发送到用户的浏览器。
根据我的理解,例如:
1.用户A向用户B发布内容 2.用户B收到消息,说“用户A已在您的墙上发布了内容”
为了实现这一目标:
我需要让用户B订阅自己的频道,可能使用他的ID,然后当用户A发布某些内容时,laravel4将接收ajax post数据,将文章插入MySQL,并将用户的ID + 他的文章发布到redis,之后nodejs将接收事件并将其发布到用户B的浏览器。
我的问题是在我的语句中,“userB订阅自己的频道,可能使用他的id。”这意味着用户B将订阅频道,例如notif-channel-{userId}-> notif-channel-967,如果我有成千上万的用户,那么我将拥有成千上万个不同的通道,可能从notif-channel-1直到notif-channel-50000,
这会成为一个问题吗?
最佳实践是什么?
流程已正确吗?
谢谢你。
注:抱歉英文不好。
更新:
阅读了更多文章后,我认为我会改变流程:
1.用户A在用户B的墙上发布内容 2.然后将ajax post发送给laravel,以便我可以将消息/帖子放入数据库中 3.之后向socketio发送事件来处理正在运行的nodejs服务器,将其推送到用户B的频道,并告诉用户B用户A已发布内容 4.如果成功,则通知用户A他的帖子成功
请注意,我不涉及redis在上述流程中,有任何反馈吗?