没有使用任何代码逻辑,没有做任何修改
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服务端收发消息都是秒到)
我这边测试正常,是否可以展示完整code以及版本
"workerman/webman-framework": "1.3.6",
"webman/gateway-worker": "^1.0",
code都是默认啊,webman 安装插件后 一切都是默认的,
就新建一个控制器,写一个方法,然后给客户端发信息,没有其它任何操作
使用sendToUid之前有bindUid吗?
如果没有bindUid ,又怎么可能sendToUid 发得了消息。。。上面写了。:Events 连接事件中我把:$client_id 绑定为:123456 (用于测试)
只有看你业务逻辑了
好吧 找到问题了,是我 android 客户端 的一个包:MINA 框架问题,MD不给服务器发心跳就没法获得返回数据! 必须心跳才能获取到服务器的消息,不然一直堆积着!