加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用Ratchet创建/管理私人房间?

发布时间:2020-12-13 22:54:17 所属栏目:PHP教程 来源:网络整理
导读:我正在制作ios聊天应用程序.在研究了所需的技术和协议之后,我决定尝试使用websockets.由于我们的堆栈顶部是基于 PHP的原因,我开始了解棘轮作为 PHP的websockets.我从阅读 documentation为ios前端制作了简单的聊天服务器.聊天工作非常好,我也很满意.我想知道
我正在制作ios聊天应用程序.在研究了所需的技术和协议之后,我决定尝试使用websockets.由于我们的堆栈顶部是基于 PHP的原因,我开始了解棘轮作为 PHP的websockets.我从阅读 documentation为ios前端制作了简单的聊天服务器.聊天工作非常好,我也很满意.我想知道如何创建单独的私人聊天室.是否需要为不同的房间运行不同的套接字事件循环实例?

>我制作的示例服务器正在使用单个事件循环
管理用户连接并将消息分派给不同的人
连接/用户ID.我真的试图寻找创造私人
聊天室,但没有找到任何我可能的信息
信心.我是否必须虚拟地管理每个连接/用户ID
在此事件循环中,例如决定哪些用户可以相互聊天
直接通过控制消息的调度?或者是他们的
真的是另外一种方法吗?这是事件循环样本
我实施的par文档:

require dirname(__DIR__) . '/vendor/autoload.php';

   $server = IoServer::factory(
       new HttpServer(
           new WsServer(
               new Chat()
           )
       ),8080
   );

   $server->run();

我想告诉我,我是一个ios / android开发人员,真的没有专家或者对网络前端/后端技术有流畅的了解.我做网络编程作为一种爱好,我尽我所能进行所有搜索和研究,因此请不要介意我的任何问题听起来都很愚蠢.

谢谢,

解决方法

Will different instance of socket event loop needed to run for separate rooms ?

不需要.只需要一个循环.你的片段很好.您需要做的是调整Chat类,以便它接受来自用户输入的附加参数 – 房间ID /名称.

例如,用户发送消息{“cmd”:“msg”,“message”:“嗨”,“房间”:1},然后聊天应仅将消息发送给加入该房间的用户.当然,您应该实现其他用户方法,例如{“cmd”:“join”,“room”:1},{“cmd”:“leave”,“room”:1}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读