workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
大家有没有出现 偶尔响应慢的问题
没有业务逻辑 没有
数
据
库操作 没有redis操作 我开始以为是网络 或是 nginx 或是 浏览器 或是 mysql的问题 结果 curl 127.0.0.1:8787 还是卡顿 有时候需要等待20秒才能响应 情况是 : 第一次访问需要等待15秒 然后第
二
次 第三次 访问 就快了 等一段时间的第一次访问 又会慢 然后第
二
次 第三次 又会快起来 该访问只有这几行代码---------
问答
PHP Fatal error: Uncaught Error: Class '
GatewayWorker
\BusinessWorker' not found
PHP Fatal error: Uncaught Error: Class '
GatewayWorker
\BusinessWorker' not found in /var/www/html/Applications
问答
如何
制
作只能给udp使用的协议
手册上在介绍自定义协议时没有介绍该协议是在tcp下使用的还是udp下使用的,而我在看内置的协议时,
发
现有的协议指定连接必须是tcp对象,有的是连接的抽象对象,有的没有指定,如图,从上到下依次是text,还是说无论协议如何定
制
,想实现tcp或者udp的指定,都必须用worker的transport属性指定.
问答
webman能不能实现类似laravel的控
制
器中间件
#### 问题描述 实现类似laravel的控
制
器中间件,有没有大佬提供个思路。
问答
channel组件的多个
进
程,如何实现每个
进
程处理不同的用户产生的订阅事件?
设置了$worker->count = 4;每个worker都作为channel组件的client连接了server,都订阅了某个事件.每次publish事件时候,四个
进
程都响应了这个事件。我只想要一个
进
程响应该事件。多用户请求同时出
发
publish事件时候分给这四个
进
程分别去处理。
问答
webman 的 monitor
进
程内存监控平滑重启好像并不平滑?
#### 问题描述 查阅代码
发
现内存达到重启条件后执行了`posix_kill($pid, SIGINT);`,看起来并不是`平滑的重启`,随后我对这个猜想
进
行了验证 #### 复现环境 1、将重启内存阈值调低到`30M`(memory_limit) 2、将内存检测周期由原来的`60s`改为`10s` 3、程序内有意加载更多的文件,并存储于静态
数
组中 以上3点都是在原规则下,尽快和频繁的触
发
内存超限重启 #### 重现问题的步骤 1、直接在触
发
重启的位置来个输出  2、监控
进
程的内存使用情况来核对触
发
情况 !
问答
请问web-msg-sender 无法引用自定义的array吗?
// 全局
数
组保存uid在线
数
据
```php $uidConnectionMap = array(); $live_agent_arr=array(); //自定义了个函
数
,在 $socket->on\n\n"; // PHPSocketIO服务 $sender_io = new SocketIO( 2120 ); // 客户端
发
起连接事件时,设置连接socket的各种事件回调 $sender_io->on( 'connection', function ( $socket ) { // 当客户端
发
来登录事件时触
发
$socket->on( 'login', functionif ( isset( $socket->uid ) ) { return; } // 更新对应uid的在线
数
据
live_agent_arr, array( "exten" => $uid, "channel" => "" ) ); } // 将这个连接加入到uid分组,方便针对uid推
送
数
据
问答
workerman启动时候 创建新的
进
程做定时器
开了4个
进
程 要在workerman启动时候 调用一次函
数
创建出新的
进
程 来做定时器 仅调用一次 现在在gateway那里调用 会执行4次
问答
gatewayworker
两个不同app之间如何通讯
比如一个app是text协议 另一个app是wb协议 这两个app
gatewayworker
之间如何通讯?
文档
getUidCountByGroup
mixed $group); ``` ``` (要求Gateway版本>=3.0.8) ``` [如何查看Gateway版本](get-gateway-version.md) 获取某个分组下的在线uid
数
量## 返回值
数
字 注意:如果是客户端断网断电等极端情况掉线,客户端的onClose回调可能无法及时触
发
,参见[onClose](on-close.md)说明。## 范例 ```php use \
GatewayWorker
\Lib\Gateway; class Events { ...client_id, 123); var_export(Gateway::getUidCountByGroup($group)); } ... } ``` 打印出的
数
据
类似如下
文档
getAllUidCount
getAllUidCount(void); ``` ``` (要求Gateway版本>=3.0.8) ``` [如何查看Gateway版本](get-gateway-version.md) 获取全局所有在线uid
数
量## 返回值
数
字 注意:如果是客户端断网断电等极端情况掉线,客户端的onClose回调可能无法及时触
发
,参见[onClose](on-close.md)说明。## 范例 ```php use \
GatewayWorker
\Lib\Gateway; class Events { ...:bindUid($client_id, 123); var_export(Gateway::getAllUidCount()); } ... } ``` 打印出的
数
据
类似如下
问答
配置在非WorkerMan项目中推
送
消息报错
GLOBAL_GATEWAY_ADDRESS is NULL 参照的 http://www.workerman.net/gatewaydoc/advanced/push.html 方法一、使用GatewayClient客户端推
送
redis服务端ip和端口 public static $gateway = array( '127.0.0.1:6379', ); // 存储房间相关
数
据
问答
webman大文件切片上传,很慢
### 问题描述 项目中需要上传视频,一个视频150M左右,直传基本上都是上传失败,所以改成了切片上传,一个切片2M,这样上传一个视频就得
发
70多个请求。业务中一般至少要同时上传3个视频左右,总共
发
送
的请求在200多,3个视频传完,总耗时基本在4分钟左右。合并第
二
个文件,116M  5. 合并第三个文件,152M !2163526bb70748.png "合并第三个文件") 服务器是8核16G,`config/server.php`中的`count`配置的是`cpu_count() * 2`,在上传文件时,我看了下服务器的负载,只有两个
进
程的尝试过增加单个切片的大小,从而减少请求的
数
量,但总耗时差不多 2.
问答
如何用php测试websocket的最大消息
发
送
量
已经用workerman 搭建好了,现在想往同事那边一次性
发
1000或2000+条的消息。要怎么测试,PHP单线程的。不知道怎么搞。。求大神教一下
问答
感觉控
制
器的前置初始化还是放在框架层面比较好
见我之前
发
过的pr: https://github.com/walkor/webman-framework/pull/39/files 调用控
制
器的action前,检测控
制
器是否存在约定名称的初始化方法而且还会陷入一个怪圈,就是那种写个`baseController`,然后其的所有控
制
器去继承它。 另外,别告诉我修改`config/middleware.php`调整中间件顺序之类的。
问答
workerman webscoket 希望能支持permessage-deflate
目前项目用户越来越多 流量以及带宽成倍增长 项目这边讨论一致认为 走压缩方案 但workerman webscoket 不支持 permessage-deflate 所以目前只用了nodejs 做转
发
支持permessage-deflate 转
发
意味着性能上不是很友好 项目这边就评估 正确做法一开始就用nodejs 提供更高的可扩展性 感觉workerman 不增加基础扩展 很难留住大用户往往成为过渡产品 资源都浪费了 #### 为此你搜索到了哪些方案及不适用的原因 https://www.workerman.net/q/4902 需要懂得框架底层 轮询事件机
制
才能
二
次开
发
问答
gateway onConnect 断开重连后,未按预期收到连接消息
( 红色划线部分,右侧为打印出的时间 ) 3-连接一段时间后,会收到连接信息 和 服务端
发
送
的心跳 ping(蓝色划线及以上) 消息中的client_id 是上一次的
数
据
,不是本次连接的client_id2-按图理解,是跟着心跳
发
送
的上一个onConnect消息,为啥重连后不是立马
发
送
onConnect 消息。3-为啥
发
送
的是上一条已经断开的client_id 配置: composer.json "webman/gateway-worker": "^1.0", 按文档自定义协议: return json_encode
问答
webman不同文件如何传递变量呢?
例如说中间件和控
制
器之间,在中间件查询了
数
据
库获取了用户信息,应该如何存储用户信息,使之能够在控
制
器中读取到用户信息呢?目前是使用request session来存储的,请问是否还有其他更好的方案呢?
问答
webman 自定义websocket如何由后端主动
发
送
消息?
已经按照文档 https://www.workerman.net/doc/webman/process.html 配置好了websocket,但是如何主动给客户端
发
消息?
问答
关于pingData设置为空问题咨询
#### 问题描述 我使用TCP跟硬件连接
进
行交互,由于硬件那边说在连接时不能
发
送
pingData,以及硬件那边也不会给我
发
送
心跳包,所以我把pingData设置为空,我想问下pingData设置为空如果TCP长时间连接不
发
送
内容,服务器会自动断开连接吗 ``` 'gateway' => [ 'handler' => Gateway::class,
« 上一页
1
...
150
151
152
153
154
155
156
157
...
431
下一页 »
« 上一页
153
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝