我需要判斷多個(gè)uid是否在線,嘗試使用Gateway::isUidOnline輪詢查詢是否在線很慢,20個(gè)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列表時(shí)返回空。
有什么其他代替方法呢?
跨外網(wǎng)調(diào)用了吧。
比如gatewayWorker一臺(tái)服務(wù)器,調(diào)用isUidOnline調(diào)用在另外一臺(tái)服務(wù)器,使用外網(wǎng)ip調(diào)用,有網(wǎng)絡(luò)傳輸耗時(shí),所以就慢了。
哥們,終于找到你的最新評(píng)論了,想和你聯(lián)系下。關(guān)于phpmicro,我我的項(xiàng)目代碼打包成webman.phar后,我如果需要運(yùn)行的話,就執(zhí)行php webman.phar start
命令,就會(huì)起來(lái)一個(gè)服務(wù),我現(xiàn)在需要使用micro.sfx把webman.phar 直接打包成二進(jìn)制文件test.exe,點(diǎn)擊 test.exe就直接能起來(lái)服務(wù),就相當(dāng)于運(yùn)行php webman.phar start
,但是不知道怎么搞?如果直接copy /b micro.sfx + "webman.phar" test.exe
,然后運(yùn)行test.exe start
會(huì)提示Only run in command line mode
,請(qǐng)問(wèn)你是怎么結(jié)局這個(gè)問(wèn)題的?謝謝。