我需要知道如何以安全的方式在2个用户之间发出和订阅消息。
例如:
user1
在频道上发出message1
:user1-2
user2
订阅频道user1-2
并重新message1
我如何确保user3
不会拦截user1
和user2
之间的聊天?
如何确保user3
不会订阅频道user1-2
?
我正在使用这个Laravel 5,Node.js,Redis,Socket.io。 我只是想知道如何保证这一点。
答案 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足够大,你就不会强行使用频道名称......