使用 Gateway::isUidOnline 多个uid轮询是否在线很慢

header

我需要判断多个uid是否在线,尝试使用Gateway::isUidOnline轮询查询是否在线很慢,20个uid需要10多秒,这是什么原因呢?代码如下:

public function uidOnline($uids)
{
    $memberids = [];
    if(is_array($uids)){
        foreach ($uids as $uid){
            if(!Gateway::isUidOnline($uid)){
                $memberids[]=$uid;
            }
        }
    }
    return $memberids;
}

使用Gateway::getAllUidList获取在线uid列表时返回空。
有什么其他代替方法呢?

1022 2 0
2个回答

抽不完的寂寞

跨外网调用了吧。
比如gatewayWorker一台服务器,调用isUidOnline调用在另外一台服务器,使用外网ip调用,有网络传输耗时,所以就慢了。

  • zhezhebie 2024-01-12

    哥们,终于找到你的最新评论了,想和你联系下。关于phpmicro,我我的项目代码打包成webman.phar后,我如果需要运行的话,就执行php webman.phar start命令,就会起来一个服务,我现在需要使用micro.sfx把webman.phar 直接打包成二进制文件test.exe,点击 test.exe就直接能起来服务,就相当于运行php webman.phar start,但是不知道怎么搞?如果直接copy /b micro.sfx + "webman.phar" test.exe,然后运行test.exe start会提示Only run in command line mode,请问你是怎么结局这个问题的?谢谢。

小W

我一次查询400个,也没有1秒

  • 暂无评论
年代过于久远,无法发表回答
×
🔝