问题描述 找到问题了,原因是协议的问题,设备发出的协议是这种JSON格式的包{……}{……},包之间没有任何结束符。所以在自定义协议是用 "}{" 作为包和包之间判断结束符。发一个包时,例如{……},服务端就没有办法解析出包,需要等待第二包进行拼接后,取出上一个包。...
客户端每次只能接收744 KB (761,856 字节)后就自动断开了 以下是在论坛看到的大文件发送例子 <?php use Workerman\Worker; require_once './Workerman/Autoloader.php'; $worker = new Worker('http://0.0.0.0:4236'); $worker->onMessage = function($con...
问题描述 多次请求同一个路由偶尔会出现定位到别的路由接口,比如我请求/user/state接口,偶尔会给我返回/novel/catalogues或者其它接口的内容 最近我有在控制器使用如下的自定义函数,希望达到接口先返回数据,然后控制器继续执行不需要返回数据的逻辑部分,我猜这么做会造成如上的问题 程序代码或配置 if (!function_exists('resDefer')) { function resD...
运行环境 系统 CentOS 7.6 php 7.4 webman/push 版本 1.0 webman-framework版本 1.5 前期准备 1.已配置好https 2.已开启31端口与32端口(宝塔与腾讯云防火墙) 3.私有频道订阅 private-user-test 4.成功订阅后 服务器会提示 online channels: private-user-test 订阅成功 5.服务器会给客户端发送...
问题描述 我是使用webman+gatewayworker插件过程中 想要测试服务器的最大连接数 所以我在另一个服务器上部署了workman 测试程序 程序就是官方推荐的程序 设置了连接数为 5W 测试环境用的1panel 容器镜像是ghcr.io/ghcr.io/tinywan/docker-php-webman:8.2.11 测试过程中发现连接数大约4W多快到5W多的时候 在线连接数会从4W多倒掉1W 2W的样...
问题描述 linux下启动 php start.php start -d 报错 PHP7.3.4版本,webman最新版本 报错信息 Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in /vendor/psr/log/src/LoggerInterface.php on line 30 ...
问题描述 我使用AsyncTcpConnection请求gpt的接口,gpt接口是流式返回数据的,但是有小概率会把一条完整的数据,分成两次来读。 程序代码或配置 $con->onMessage = function(AsyncTcpConnection $con, $buffer)use ($userConnection,$util){ static $header = '',$he...
问题描述 Windows Server 2022 Datacenter nginx 1.22 php ts 8.3 session用的是redis 5.0.14.1, 代码框架用的是thinkphp5.0 具体的现象是同一个会话请求时, 前面的请求处理会阻塞,下一个异步进来的请求, 不同会话之间不会相互阻塞 php API 测试的代码很简单 { function test(){ echo "h...
问题描述 workman启动后正常运行一段时间到了晚上固定时间服务端收不到客户端的信息 使用后台运行启动workman gateway服务 到了晚上八点多 会提示内部端口被拒绝 然后服务端收不到客户端的信息,通过TCP测试软件,还能够正常连接,能够向服务端发送消息 但是收不到回复,检查workman的进程还在运行,使用restart重启服务后 服务端又能够收到消息并正确回应客户端 程序代码或配置 <?php ...
问题描述 在webman中自定义协议JsonNL后,在协议类里的input打印了1,在UdpServer类onMessage也打印1,使用第三方工具传输数据时候不会触发1,在onMessage里也不会触发。 但是我把 'listen' => 'JsonNL://0.0.0.0:9002' 改回 'listen' => 'udp://0.0.0.0:9002' 之后onMessage中的1会在命令行里被...
关于多域名绑定,已经有很多讨论了,但我觉得通过Nginx去设置伪静态是不完美的. https://www.workerman.net/q/11427 这个解决方案我也看过了,但改源码存在覆盖的问题,也不是很好的选择. 有没有一种办法能在config/route.php这个配置文件里获取到当前host然后通过host分配不同的路由规则? 我想实现的代码好下: <?php use Webman\Route; $...
问题描述 我设置每45分钟执行一次,这里就会出现一个问题, 他在 45 执行以后 在整点 以后就再执行一遍 9:45 执行了 10:00 就会再执行一次 10:45 再执行 new Crontab('0 */45 * * * *') 这咋解决...
问题描述 麻烦大佬帮忙看看啊 php8.1.13 workerman 1.5.6 webman/gateway-worker 1.0.8 程序代码或配置 $uid = "{$screen}-gateway-{$dmId}"; if($screen != 'dm' && $dmId != 1){ dump($uid); $client_id = Gateway::getClientI...
问题描述 今天试着使用easyexcel写个demo,根据github里面的示例,在webman中怎么返回呢?直接使用 Excel::export($array)->headings($headings)->download('users.csv'); 内容都打印在后台了,没有出现下载,这个我要怎么处理呢?...
测试代码 try { $clientIds = Gateway::getClientIdByUid($uid); dd($clientIds); } catch (Exception $e) { dd($e->getMessage(), $e->getFile()); } 报错: stream_socket_client(): Unable to connect to tcp:...
解决 1 定时是有执行的 2 是逻辑代码问题,定时器不能直接获取$_SESSION 3 感谢 @six 问题描述 1 执行php7.4 start.php status 命令, 状态都是idle 且 单个进程的定时器看了 基本不超过3个 2 Event.php 代码中,没删除定时器的代码 3 正式和测试的都是采取静态单文件的php.4,环境应该是一样 4 测试环境正常,正式不正常 5 正式和测试的代...
问题描述 在websokcet中将一个二进制数据通过tcp发送给客户端,我发送过去后对方接受仍不是二进制 想问一下如果给对方发送一个二进制这样用对吗? 这里写问题具体描述...
问题描述 现在对接了1个第三方接口,他们接口响应很快qps可以支持到2w,他们接口延时是30ms 现在我们对接了他的接口,然后给外部提供了这个接口,接口延时必须在100毫秒内,现在只能做到qps500以内,超过延时就跟大了 中间的逻辑就是,拿到第三方接口的数据,判断之后实时返回 现在webman是单机部署,12核24g,50兆带宽 请问还有什么方案可以提高我接口的qps...