获取不到Gateway::getAllGroupIdList

wei

用topthink/think-worker v3.0,获取不到Gateway::getAllGroupIdList
本来想做一个简单的接口输出在线群组的,但是突然发现获取不到

$data=[];
$data['im_start']=false;
$data['im_list']=[];
$clientList= Gateway::getAllClientIdList();
$data['client_list']=$clientList;
$liveGroupList= Gateway::getAllGroupIdList();
if($liveGroupList){
    $data['im_start']=true;
    $data['im_list']= $liveGroupList;
}
$jsonStr=  json_encode($data, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
return '<pre>' . $jsonStr . '</pre>';

得到得结果是这个

{
    "im_start": false,
    "im_list": [],
    "client_list": {
        "7f00000107d00000024b": "7f00000107d00000024b",
        "7f00000107d000000262": "7f00000107d000000262"
    }
}

在线client列表是可以获取到的,grouplist获取不到?为啥,是我的版本过低了还是这个扩展不行?需要更换。
我看官网的示例都在onMessage回调方法下使用的,尝试了一下在onMessage 回调里面是可以获取到的,放到别的地方就获取不到了?不能单独那出来做接口使用吗?

519 1 0
1个回答

latin

BusinessWorker 进程可以调用到。
其它进程得手动设置 Gateway::registerAddress = '127.0.0.1:xxx'; ,xxx是register端口。

  • wei 2023-03-08

    找到方案了:workerman/gatewayclient,官方也推荐的应用方式,不过还有一个双向通讯是什么概念。我了解一下。

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