webman GatewayWorker插件 发送消息延迟是怎么回事?

kspade

没有使用任何代码逻辑,没有做任何修改
webman 项目 ,安装了插件

composer require webman/gateway-worker

Events 连接事件中我把:$client_id 绑定为:123456 (用于测试)

然后 在app\controller\test.php 新建一个控制器 方法:

 public function  sendway(Request $request){
      $uid = "123456";
     if(Gateway::isUidOnline($uid)){ 
        Gateway::sendToUid($uid,"测试消息\r\n"); 
     }else{
        return json(['code' =>1,'msg'=>$uid."不在线"]);  
     } 
 }

访问Url发送消息,明显感觉有延迟500毫秒 - 2秒左右,客户端才收到,反正不是那种秒到 ,问题出在哪里啊

PS:(绝不是本地网络问题,也不可能是服务器网络问题,因为我服务器有搭建一个java的tcp服务端 我客户端链接这个java服务端收发消息都是秒到)

608 2 0
2个回答

taozywu

我这边测试正常,是否可以展示完整code以及版本

  • kspade 2022-09-11

    "workerman/webman-framework": "1.3.6",
    "webman/gateway-worker": "^1.0",

    code都是默认啊,webman 安装插件后 一切都是默认的,
    就新建一个控制器,写一个方法,然后给客户端发信息,没有其它任何操作

  • taozywu 2022-09-11

    使用sendToUid之前有bindUid吗?

  • kspade 2022-09-11

    如果没有bindUid ,又怎么可能sendToUid 发得了消息。。。上面写了。:Events 连接事件中我把:$client_id 绑定为:123456 (用于测试)

不败少龙

只有看你业务逻辑了

  • kspade 2022-09-12

    好吧 找到问题了,是我 android 客户端 的一个包:MINA 框架问题,MD不给服务器发心跳就没法获得返回数据! 必须心跳才能获取到服务器的消息,不然一直堆积着!

年代过于久远,无法发表回答
🔝