gpt4 book ai didi

php - 在 PHP 上使用 Ratchet 和 WebSockets 进行私有(private)和群聊

转载 作者:行者123 更新时间:2023-12-04 16:14:34 24 4
gpt4 key购买 nike

我的目标是制作一个带有私有(private)和群聊选项的聊天应用程序。我更习惯于在 PHP 中使用 Ratchet 和 WebSockets,而不是使用 node.js,因为人们告诉我这会是最好的。

虽然我只在全局聊天的上下文中看到过 WebSockets 的例子。

我的方法是使用 WebSocket id 并将其存储在数据库中,因为当人们请求与某个人或某个组的人聊天时,我会给服务器这些 id,它只会发送给那些人

那会是正确的方法吗?有没有更好的方法来解决这个问题?

最佳答案

如果你使用 Ratchet,它是一个很好的 websocket 的 PHP 库,你还可以阅读关于 the WAMP server 的部分。 ,这是 the WAMP protocol 的实现(v1),关于在你的情况下创建多个“主题”,聊天室。

建议开始在 WAMP 协议(protocol)之上构建多 channel 聊天服务器。

在您的情况下,您还想保护您的主题。您必须以自己的方式实现此安全性,并且可能按主题限制 2 个用户...

第一种方法可能是使用 token 。当用户想与某人私下交谈时,他会创建一个带有 secret token 的私有(private) channel ,然后将这个 secret token 传达给他想要交谈的用户。所以使用WAMP协议(protocol),就像创建一个名为/chat/5sd4f5qsg8rr5sg8rg的主题有足够的 secret token 。

另一种更结构化的方法是在数据库中存储一个元组 userA/userB/主题名称,然后创建主题并只允许这两个用户加入它。
当有人加入时,通知另一个人(通过同一个 websocket 连接)他的 friend 想要交谈(或自动打开聊天窗口......)。

关于php - 在 PHP 上使用 Ratchet 和 WebSockets 进行私有(private)和群聊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41109607/

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