workerman
首页
问答
分享
手册
市场
商业
客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
AI助手
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
webman/push,用户端一直在线从未下线问题
#### 问题描述 网页使用push插件链接websocket,后端只用来统计在线人
数
问题 微信内打开网页,然后直接将微信至于后台运行,过几秒后运行php start.php connections
发
现websocket已经断开链接,而$result = $api->get('/channels')返回的
数
据
时好时坏,好的时候应该无在线用户,坏的时候就显示还有用户在线,当坏的时候就会导致此用户一直在线这问题纠结很久了只是一直没找到原因复现,比如某天一共几十人在线,后面就一直卡起10多人一直在线未离线 #### 为此你搜索到了哪些方案及不适用的原因 心跳的原理是前端
发
送
给后端,后端然后响应,有没得撒办法后端主动
发
起心跳判断前端是否在线然后断开链接,但是新的问题就是如果前端在线人
数
很多的话后端不是忙死了
问答
关于webman多次消费rabbitmq fanout消息
#### 问题描述 现有个需求是需要把物联网设备的状态同步到两个独立的系统中(都是用webman开
发
)。计划设备回来的消息扔到mq中,然后两个系统去消费处理各自的业务,但
发
现消息被消费了多次,单条消息消费次
数
也不等于
进
程
数
。#### 为此你搜索到了哪些方案及不适用的原因 我是在
进
程启动后做的监听操作,代码如下: !channel, Client $client) { Log::channel('mq')->info('【MQ-consume】收到一条待消费
数
据
进
程,这样的话不是应该用自定义
进
程?
问答
workerman
发
送
yii\base\ErrorException: fwrite(): send of 8192 bytes failed
yii\base\ErrorException: fwrite(): send of 8192 bytes failed with errno=11 Resource temporarily unavailable in /www/wwwroot/我使用的方法是
问答
GatewayWorker
设置心跳后,请问下怎么关闭客户端已经掉线用户呢
:8585"); $gateway->pingInterval = 55; $gateway->pingNotResponseLimit = 1; $gateway->pingData = '';
GatewayWorker
问答
webman的日志中如何实现在执行$log->debug('balabalabala...')时同时在控
制
台也打印出记录的日志?
我是日志控,很多程序执行过程都要记录日志,队列生产时要记生产日志,队列消费时要记消费日志等等,而服务是在tmux中启动的,有时候希望直接在控
制
台里也能看见记录的日志,现在的做法是: $debugLogger->info('.....'); var_dumo('.....'); 也就是每一处记录日志的地方都要写两句,我记得monolog中好像可以配置同时记录文件并输出控
制
台,请问在webman中该怎么实现呢
问答
EasyWechat V6.x支付回调不停息
其中支付环节没有问题,回调也可以正常拿到
数
据
,但回调通知一直不停通知。php // 处理支付结果事件 $server->handlePaid(function ($message) { // $message 为微信推
送
的通知结果out_trade_no'] // 商户号 $message['mchid'] // 具体看微信官方文档... //
进
行业务处理,如存
数
据
库等... }); return $server->serve(); ``` 隐约感觉问题出在 `$server->serve();` 这里对回调的响应上
问答
不同worker对象之间可以通讯吗
0.0.0.0:2000"); 最后运行 Worker::runAll(); ,分别用浏览器和tcp 客户端都可以连接,但是这两个之间可以互相通讯吗,如何实现, 比如 我在ws_worker onMessge函
数
里接收到浏览器
发
来的
数
据
,这个时候 用全局的 $tcp_worker看 里面的connections是空的,但是用tcp客户端给服务器
发
数
据
全局的 $tcp_worker看 里面的connections是有连接的
问答
Gatewayclient建立连接之后 client_id 经常变化问题
项目背景:自动售货机,自动售货机可以设定服务IP 端口 心跳间隔(只能设定最小间隔为60s 目前就是设定的60s) 服务端:
gatewayworker
[php start.php start -d启动、pingInterval =70 && pingNotResponseLimit = 1、启动之后workerman.log无报错信息 整体服务正常] 问题:机器主板
发
送
心跳给服务端 机器主板固定心跳间隔不得小于60秒 目前主体正常 但是每20分钟左右client_id(服务端会话id)都会
发
生变化 导致机器不能出货 因为断开长连接了 拿到的那个存储的client_id无效 有没有好的方法可以保持尽量不在70秒的时候长连接就挂了
问答
webman怎样序列化当前的Request
workerman/webman-framework 1.5.16 workerman/workerman dev-master (题外话,期待V5
发
布参
数
较多,所以不想一一拿出来处理 。 比如Request的路由,路由参
数
,请求参
数
等。
发
现直接调用 1. ```php serialize(request()); ``` 2.function () { $originReq = clone request(); echo serialize($originReq); // 这里拿到序列化后的request, 扔
进
队列return ''; })->setParams(['test' => 1]); ``` #####[x] 1. json化, 虽然不报错了 ,但是跟实现目标,json
数
据
没任何关系了 #####[x]重新创建一个对象, 把路由参
数
和请求参
数
放
进
去, 再序列化.
问答
Webman 单机多
进
程消费队列
请问 webman 单机多
进
程消费,入库,会不会出现 其他
进
程同时拿到一条消息?应该都是原子的吧?
问答
webman 的redis-queue 多
进
程同时消费
'handler' => Webman\RedisQueue\Process\Consumer::class, 'count' => 8, // 可以设置多
进
程同时消费'/queue/redis' ] ], ``` 请问 ```php 'count' => 8, // 可以设置多
进
程同时消费 ``` 问题1: windows下打开windows.bat就会自动开8个
进
程同时消费,还是需要打开8个windows.bat 问题2: 在linux下,如何多
进
程同时消费
分享
简单几步,构建自己的php静态可执行文件
- 自己编译php静态文件目的 1.定
制
自己需要的php扩展 2.修改php配置,如memory_limit的大小 - 编译环境: Ubuntu 18.04.3 LTS - 参考文档: https:[截图](/upload/img/20231217/17657ed31502ce.png) - 步骤
二
下载static-php-cli 可执行文件,根
据
编译平台下载不同的文件,我这里下载的是`spc-linux-x86home/root/custom_complie_php/目录下 下载地址:https://dl.static-php.dev/static-php-cli/spc-bin/nightly/ - 步骤三
进
入/home/root/custom_complie_php/目录,使用`spc-linux-x86_64` 执行编译命令 ```shell # 检查环境依赖,并根
据
提示的命令安装缺失的编译工具 $ .
问答
求大神指点一
二
我想在win系统运行视频直播,但是提示需要扩展,但是扩展只能在linux下安装 win下怎么安装
问答
关于自定义
进
程执行异步任务的问题
### 代码如下: #### 控
制
器 > app/controller/Index.php ```php <?$request->input('id')); } } ``` --- ### 自定义
进
程 > app/process/AsyncTask.php ```php <?Zend OPcache v7.4.27, Copyright (c), by Zend Technologies ``` --- #### 问题 为什么所有的异步任务,都放到一个async-task
进
程里执行了啊,怎么能平均或随机分配到20个
进
程里
问答
GatewayWorker
因为businessworker内存不断增高,想达到一定请求后重启
GatewayWorker
因为businessworker内存不断增高,想达到一定请求后重启 1、如果用Worker::stopAll()会导致这个worker后续消息接收丢失吗?
问答
gatewayworker
中的默认项目名YourApp如何改成别的?直接文件夹名会导致无法启动
gatewayworker
中的默认项目名YourApp如何改成别的?直接文件夹名会导致无法启动, 我尝试修改了YourApp为别的,导致无法启动
问答
通过信号启动workerman状态
#### 问题描述 我想实现就是在页面获取到 workerman
进
程的一些信息,也就是 命令行 ``` php start.php status ``` 的结果展示。## 我的代码 页面入口 ```php public function info() { $data = []; //获取
进
程pid $filesswitch ($message_data['type']) { //服务状态监控 case 'server_monitor': //
发
送
getAllClientSessions(); $to_client_info['online_user_info'] = $client_info; //
发
送
给客户端
问答
GatewayClient 和
GatewayWorker
不在同一台机器,配置问题
#### 问题描述 如题,
GatewayWorker
服务 本机内网ip为192.168.0.1 ,启动环境为windows,GatewayClient 本机内网ip为192.168.0.10, 按照官方文档
分享
webman 使启动命令支持启用不同环境
# webman 通过启动命令启用开
发
或生产环境 很多时候,我们都会把关键信息放在一处
进
行配置,如:通过 .env 来配置 app_debug 开关或
数
据
库信息等,方便管理及部署。我们通常有两种或多种环境用于开
发
或生产,并在部署时使用对应的配置文件。 但如果我们只用一个配置文件,并期望在启动命令中通过输入参
数
的方式,来决定启用开
发
还是正式环境,该如何处理呢?同样适用于 docker 和 supervisor 部署 ####
二
. 方案劣势 1. 需要修改框架的原始文件(start.php) 2.修改框架的原始文件(start.php),将命令行中的变量写入环境变量: // 解析命令行启动参
数
foreach ($argv as $key=>$value) { // 写入环境变量 if通过 .evn 的 APP_ENV 来区别开
发
环境 2. 在框架的 start.php 及 windows.php 中,获取命令行上的 -e 参
数
并写入环境变量 3.
问答
qq群永远加不
进
去怎么回事呢?
qq群永远加不
进
去怎么回事呢?qq群永远加不
进
去怎么回事呢?qq群永远加不
进
去怎么回事呢?qq群永远加不
进
去怎么回事呢?
« 上一页
1
...
190
191
192
193
194
195
196
197
...
429
下一页 »
« 上一页
193
下一页 »
赞助商
+成为赞助商
×
请作者喝咖啡
×
🔝