gpt4 book ai didi

node.js - 用户之间的实时聊天,就像在社交网络中一样 [Laravel + Node + Redis]

转载 作者:可可西里 更新时间:2023-11-01 11:35:45 24 4
gpt4 key购买 nike

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

例如:user1 在 channel user1-2 上发出 message1user2 订阅 channel user1-2 并接收message1

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

我正在为此使用 Laravel 5、Node.js、Redis、Socket.io。我只需要知道如何确保它安全。

最佳答案

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

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

用户 1 向 ch-12345 发送消息。

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

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

SMEMBERS user2:channels

或者服务器通知客户端他有新 channel 。

PUBLISH user2-new-channel ch-12345

您可以通过以下方式轻松检查 user3 是否有权访问 channel

SISMEMBER user3:channels ch-12345 

如果随机 guid 足够大,您将无法暴力破解 channel 名称...

关于node.js - 用户之间的实时聊天,就像在社交网络中一样 [Laravel + Node + Redis],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34456789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com