我想问下关于onmessage离的connection对象?我想开发个聊天室的项目
问题描述
我想问的问题是,假设每次发的包都包含有fromUserId,content,toUserId这些字段,
$userIdToConnection[$fromUserId] = $connection;
那这句话后,他每次的$connection都是一样的吗?
$worker->onMessage = function ($connection, $data) {
global $userIdToConnection;
// 假设$data是一个JSON字符串,包含了发送者和接收者ID
$message = json_decode($data, true);
// 获取发送者和接收者ID
$fromUserId =$message['fromUserId'];
$toUserId =$message['toUserId'];
$content =$message['content'];
// 将当前连接与用户ID关联
$userIdToConnection[$fromUserId] = $connection;
为此你搜索到了哪些方案及不适用的原因
1个回答
只要连接不断开,那么这个连接发来的数据对应的connection就是同一个
不同的连接对应的connection是不同的
开发IM是一个比较挑战的项目, 要考虑心跳, 弱网重连, 消息存储, 在线离线, 多端登录处理等等很多事情, 不建议从头自己手写服务端, 推荐使用webman/push 或者 gatewayWorker
另外workerman官方有提供IM聊天成品出售, 安全稳定 地址
泡泡IM聊天源码
99客服系统源码
谢谢你对我的打击。。。。