我直接下载gatewayworker的demo,在Events文件里面使用use Workerman\Timer,结果提示该文件未找到,引用语句应该怎么写...
我有一些设备,是统一通过同一个4G模块来发送指令,即这些设备的的clientid是一样,但是发送过来的指令会携带具体的设备id,此时该如何判断具体某台设备的在线情况呢?目前想法是在onMessage里面,等收到设备的登录指令时,根据不同的设备id,创建对应的一分钟定时器,然后监听设备的心跳指令,如果某台设备的心跳指令及时发送过来,则删除该设备的定时器,同时再创建一个新的定时器,如此反复,如果一分钟内没有收到对应设备的...
使用php start.php reload重启进程后,使用status查看状态,发现bussinessworker的exit_count数量在递增,上周二reload后bussinessworker的exit_count的数量一直就没降下来,当时reload后显示的是600,今天reload后显示1200,再次reload,发现数量又涨了,变成1352了。 阿里云监控的tcp链接显示活跃连接数正常,但非活跃连接数变...
将openssh由8.2升级到9.1后,执行php start.php status指令后,看不到gateway和bussiness进程了,请问这是为什么...
今晚阿里云监控突然报警,tcp连接数突然暴涨,从两万升到四万左右,以前都是重启tcp就可以了,但是今晚重启无效,然后增加了gateway和bussinessworker,以daemon模式启动后,并执行php start.php reload,刚开始出现了一个bussinessworker进程,但是再次用status查看的时候又没有了,一直重复reload都没有效果,期间不断的增大gateway和bussinessw...
我重启了gatewayworker,刚开始进程都起来了,但很快,也就几秒钟,使用status指令查看进程,发现bussinessworker进程只剩几个,再执行status指令,bussinessworker进程已经没有了,此时workerman日志文件里面没有报错信息,使用debug模式运行时并没有错误信息提示,但是当执行指令停止gatewayworker时,workerman日志就开始疯狂抛出错误,如下图。之前也...
请问在Gateway::bindUid($client_id,$device)后,执行$_SESSION[$client_id]=$device来保存设备id是否可行?当设备掉线出发onClose时,通过$_SESSION[$client_id]来获取设备id会有问题吗?因为我这边发现有时候会出现触发onClose时,$client_id不存在的情况,触发onClose的时候$client_id会存在丢失的情况吗?...
问题描述 events里面的数据库链接之前一直用的外部链接,昨晚改成内部链接并重启gateway后,刚刚重启的片刻,bussinessworker都起来了,设备也能正常收发指令,但是马上就又都掉下去了,把数据库再改回外链也不行,一直报这个错,提高gateway和bussiness的数量,也没用,这个问题持续了两个小时左右,那个时候系统里面应该有不少设备断电了,然后gatewayworker才恢复正常 报错信息 #12...
问题描述 设备登录后绑定对应的设备和clientid,称此时的clientid为id1,设备30分钟会发送一次登录指令,当设备再次发送登录指令时,有时候会出现clientid不一样的情况,称此时的clientid为id2,,那么此时就出现了一台设备,两个clientid的情况,此时设备的心跳指令会在id2的通道进行收发,那么超时之后,id1就会触发onclose。触发onclose时,会更新数据库里面设备的状态,这样...
手册上说“客户端定时每X秒(推荐小于60秒)向服务端发送特定数据,服务端设定为X秒没有收到客户端心跳则认为客户端掉线,并关闭连接触发onClose回调。” 而之所以推荐小于60秒是因为“很多路由节点会清理60秒内不活跃的连接,导致还没来得及发送心跳,连接就断开了。”参考自walker大大在https://wenda.workerman.net/question/4615 这个问题中的回复。 问题一:现在我设置的$ga...
如图所示,我的两台设备50127和50128,在onMessage()里打印出对应的client_id时,却发现两台设备对应的client_id一样,之前一直没遇到过这种情况。文档中说client_id是唯一的,请问大神这是什么原因导致的?...
1.平时晚上10点左右业务量都比较低了,但是昨天晚上BusinessWorker进程突然全没了,查看log日志,发现只有昨天凌晨时候有一次错误4,可能是有链接连接到register上了,但晚上10点左右日志并没有记录下来任何东西,应该不是这个错误吧。但保险起见,还是把注册地址改成127.0.0.1了($register = new Register('text://127.0.0.1:xxxx');)。在重启gate...
最近gatewayworker报错error3,error4,exit_status:11,exit_status:64000. 1:出现error4应该是自己的注册地址设置的有问题,现在已经改成了127.0.0.1; 2:查看文档http://wiki.workerman.net/Error3上面说有两个原因,一个是gateway和businessworker的registerAddress设置错误或不一致,一个是...
昨天晚上重启gateway的时候就有发现这个问题,守护进程启动成功之后,用status指令查看发现没有businessworker,然后我的设备也就一直连不上,之后就一直重启,最后就好了。然后今天重启的时候又出现了这个问题,也是重启多次后才连上了businessworker,然后因为其他原因又重启了一次,结果就一直连不上了,然后现在我把businessworker连接数调大,连接上了,请问这个原因是因为busines...
想请教一个问题,当我的设备在连上gateway后突然断开,是否可以通过$SESSION来获取这台设备id并更新对应的设备状态,因为我现在遇到的情况是我的设备断开了连接,触发了onclose但是$SESSION却没有值,导致无法运行update函数更新设备状态。手册上说客户端或服务端与Gateway进程的连接断开时触发onclose,而$_SESSION的生命周期与client_id对应socket连接的生命周期相同,...
大神,我用过的是gateway worker,现在发现服务器cpu很高,于是用top指令查看了一下,如左图所示,上面几个进程都占了很多cpu,然后用cd /proc/PIDID查看了一下对应的pid,发现如图右所示,cwd指向的都是gatewayworker文件夹,请问大神这该如何处理...
问题需求:群发指令到部分设备端 解决思路:将该部分设备分组,然后利用sendtogroup群发指令 疑问1:对设备进行按需分组,请问是需要通过客户端发送含有标志性字符的指令,比如“group:team”,然后gatewayworker通过该标志性字符来将其对应的clientid加入team组中吗?如果客户端发送的指令没有标识符,在服务端的gatewayworker是不是就无法按需分组了? 疑问2:我的所有指令都含有设...