客户端和服务端都在同一台服务器,访问GatewayGateway::isUidOnline()发现其他端口里的数据访问不了,
Gateway::$registerAddress = '127.0.0.1:1236';这个已经配置,但还是获取不到正确的uid
public static function onClose($client_id)
{
var_dump("激光已关闭");
$uid = $_SESSION['uid'];
var_dump($uid);
$ip = substr($uid, strlen('laser'));
// 通知分机设备上的激光已删除
$laser_device = Device::where('ip', $ip)->where('type', 3)->first();
$device = Device::find($laser_device->extension_id);
Redis::delete('laser' . $ip);
Gateway::$registerAddress = '127.0.0.1:1236';
var_dump(Gateway::getAllUidList());
if (Gateway::isUidOnline($device->ip)) {
var_dump('分机ip:' . $device->ip);
Gateway::sendToUid($device->ip, json_encode(['type' => config('constants.EQUIPMENT_JGCLOSE'), 'msg' => '该激光设备已下线', 'data' => $ip]));
}
}
在激光断开的时候通过socket通知其他设备 其他设备uid也进行了绑定 但是
Gateway::$registerAddress = '127.0.0.1:1236';
没有生效 打印输出了一下还是获取当前1238端口下的uid
不知道是什么原因 大神给看一下 这个方法我在很多地方使用 有的时候可以用 有的时候就用不了
还有一个问题 GatewayWorker\Lib\Gateway和GatewayClient\Gateway有什么区别吗?
我看两个里面的方法基本一摸一样 我该如何选择?
linux Workerman version:4.1.9
$addressesCacheDisable 这个我已经禁用了
有大神帮我看看吗?
跨gateayWorker通讯用GatewayClient\Gateway