问题描述 1、项目里有一个设备接入服务,是多进程运行,在每个进程里创建一个异步客户端。比如 4 个进程 2、起了另一个服务TCP服务,上面的异步客户端连接到这里,接受来自接入服务的数据。同样 4 个进程 3、通过'reusePort' => true, 目的是可以平均接入服务的4个异步AsyncTcpConnection,结果是连接还是集中在其中1个或者2个随机的进程里。'reusePort' => tr...
问题描述 1、workerman提供workerman-redis组件和redis-queue消息队列,里面都有消息队列的功能,workerman-redis组件里包括了其他redis操作,功能更全。redis-queue 关于发布和订阅没有比 workerman-redis组件里订阅和发布功能有什么特别的地方,在使用时应该怎么选择。 2、基于Redis的消息队列能否实现像MQTT的分级TOPIC的功能(一级/二级/...
问题描述 globalDataClient 组建有没有关闭连接的方法,比如close()方法。 因为我要在多子进程里set某个global变量,如果在子进程里重置变量,有冲突。 方案就是在主进程里做初始化置空,子进程里使用。主进程置空后需要关闭连接,否则浪费资源。...
问题描述 找到问题了,原因是协议的问题,设备发出的协议是这种JSON格式的包{……}{……},包之间没有任何结束符。所以在自定义协议是用 "}{" 作为包和包之间判断结束符。发一个包时,例如{……},服务端就没有办法解析出包,需要等待第二包进行拼接后,取出上一个包。...
问题描述 这里详细描述问题 安装 PHP event 扩展后报错; pcntl_signal() has been disabled for security reasons in file /www/wwwroot//vendor/workerman/workerman/Worker.php on line 1109 pcntl_signal() has been disabled for security rea...
问题描述 用的是ThinkPHP6.1,在项目里写了两个服务,独立的文件,一个TCP_SERVER,另一个是TCP_client 1、然后启动服务:php think serv start -d;php think client start -d 2、问题:当使用关闭client的时候,发现TCP服务端,也跟着stop了;同样关闭Server的时候,Client也随着Stop了。 3、关闭:php think cli...
问题描述 进程里有用到Redis,但是发现经常会出现Redis连接错误,进程运行过程中发生的。报下面的错误。 RedisException: read error on connection to 127.0.0.1:6379 这个问题困扰很久了,有没有好的办法,实在进程onWorkerStart事件里启动的Redis连接。 没有用到Workerman的Redis插件,文档里提示插件主要是解决Redis队列的,简单应...
问题描述 早上发现workerman服务报了这个错误,服务异常了 think\exception\ErrorException: stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name or service not known vendor/workerman/workerman/Connection/AsyncTcpCon...