用户之间的实时聊天,例如社交网络[Laravel + Node + Redis]

时间:2015-12-24 18:48:07

标签: node.js redis socket.io laravel-5 node.js-connect

我需要知道如何以安全的方式在2个用户之间发出和订阅消息。

例如: user1在频道上发出message1user1-2 user2订阅频道user1-2并重新message1

我如何确保user3不会拦截user1user2之间的聊天? 如何确保user3不会订阅频道user1-2

我正在使用这个Laravel 5,Node.js,Redis,Socket.io。 我只是想知道如何保证这一点。

1 个答案:

答案 0 :(得分:0)

User1向服务器询问user1-2的通道名称,服务器生成随机guid ch-12345并将其返回给客户端并添加user1引用ch-12345的标记,user2也参考。

SADD user1:channels ch-12345
SADD user2:channels ch-12345

User1将消息发布到ch-12345。

ZADD ch-12345 (+new Date()) "Hello!"

User2在登录时向服务器询问可用频道。

SMEMBERS user2:channels

OR服务器通知客户端他有新频道。

PUBLISH user2-new-channel ch-12345

您可以通过

轻松检查user3是否可以访问频道
SISMEMBER user3:channels ch-12345 

如果随机guid足够大,你就不会强行使用频道名称......