0

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

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

我怎么能确定user3不会拦截和之间user1的聊天user2?我怎么能确定user3不会订阅频道user1-2

我正在使用这个 Laravel 5、Node.js、Redis、Socket.io。我只需要一些想法如何确保它的安全。

4

1 回答 1

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!"

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

SMEMBERS user2:channels

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

PUBLISH user2-new-channel ch-12345

您可以通过以下方式轻松检查 user3 是否可以访问频道

SISMEMBER user3:channels ch-12345 

如果随机 guid 足够大,您将无法强制使用频道名称...

于 2015-12-28T17:22:07.650 回答