目前公司考虑上k8s,没有运维,开发去部署。目前我想到的上k8s的话,有以下问题 单台机器 pod不固定,workerman进程数量没办法设置 如果把代码放入镜像中,每次修改代码后需要更新镜像,这样应该是不能做到平滑重启...
Trying to access array offset on value of type bool in file /var/www/workerman_gateway/vendor/workerman/workerman/Worker.php on line 770 项目运行在docker中,代码报错的地方是 $user_info = \posix_getpwuid(\posix_getuid()); ...
在onmessage里,直接 self::$globaldata_worker ->increment( 'process_cnt', 1 ); 发现最后process_cnt这个值有问题,取出来的值是null,貌似需要初始化为0才行,但是这个初始化不知道在什么时候进行...
gateway的bussinesswork中onmessage获得message是请求头,而不是客户端发送的信息 客户端 for( $i = 0;$i<=1;$i++ ){ $con = new AsyncTcpConnection('ws://x.x.x.x:8282'); $con ->onError = function(AsyncTcpConnection $con...
考虑到一个场景,当前有10万台设备连接,如果因为代码或者服务器原因,所有设备断开了连接,下次重启后,所有设备都会同时连上,因为连上后有些数据库和redis的操作,服务器完全抗不住。所以我想,如果一个gateway,同时有1000个正在发起连接,但是数据库和redis工作还没做完,后面设备发起连接时,直接拒绝这个请求。bussiness进程在处理完连接事件后,告诉gateway,gateway 就讲总的正在连接设备减1...
在gatewaywork的bussiness中使用redis-queue,onconnect时间中,给队列发送数据 /** * 当客户端连接时触发 * 如果业务不需此回调可以删除onConnect * * @param int $client_id 连接id */ public static function onConnect($client_id) ...
现在公司部署的gatewayworker在一台单机32核64g服务器上,现在要改成集群,看了文档,如果要改成集群,好像reload没用,要重新restart,文档写的是reload只对runall后面加载的文件有效。但是客户现在有10多万台设备在线,不想重新启动,因为重新启动会掉线。想问下有什么方案能改成集群,但是又不影响已经在线的设备...