我正在制作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}
标签:php,websocket,phpwebsocket,ratchet
来源: https://codeday.me/bug/20190708/1402453.html