我想问下关于onmessage离的connection对象?我想开发个聊天室的项目

bobshipwood

问题描述

我想问的问题是,假设每次发的包都包含有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;

为此你搜索到了哪些方案及不适用的原因

112 1 0
1个回答

walkor 打赏

只要连接不断开,那么这个连接发来的数据对应的connection就是同一个
不同的连接对应的connection是不同的

开发IM是一个比较挑战的项目, 要考虑心跳, 弱网重连, 消息存储, 在线离线, 多端登录处理等等很多事情, 不建议从头自己手写服务端, 推荐使用webman/push 或者 gatewayWorker

另外workerman官方有提供IM聊天成品出售, 安全稳定 地址
泡泡IM聊天源码
99客服系统源码

×
🔝