workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
关于
GatewayWorker
中BusinessWorker关闭一个服务不影响服务质量
> 默认规则是Gateway随机选择一个BusinessWorker
进
程,然后把当前client_id与这个BusinessWorker
进
程绑定,以后这个client_id的所有
数
据
(onConnect/onMessage/onClose事件)都交给这个绑定的BusinessWorker
进
程处理。 Gateway服务器会自动感知有BusinessWorker服务器下线,不会再将请求转
发
给下线的机器,整个下线过程中不影响服务质量。截取的是
gatewayWorker
文档中的两处,是不是可以这样理解: 当BusinessWorker下线之后Regisiter得到消息告知所有的gateway有一个BusinessWorker下线,连接到的使用其他的
分享
一键CRUD-基于webman1.4+layui+thinkorm 后台系统
- 前台基于FunAdmin前端开
发
- 复用TP6框架ORM 以及其他功能 - 支持多语言,自动加载语言文件 - 使用require.js 自动加载 - UI组件化,只需要写函
数
成就表单: php: 7.2+ ,推荐7.4 mysql: 5.7+ ### 安装教程 - 第一步 、
进
入config/thinkorm 文件修改
数
据
库配置 - 第
二
步、windows 启动 php windows.phpstart ;linux启动 php start.php start - 第三步、访问域名 127.0.0.1:8787 即可以
进
入安装程序 ### 启动方式(命令) - windows开
发
环境windows.php start -d - Linux生产环境 - php start.php start - php start.php start -d ### .env环境 - 请复
制
或者重命名一份并编辑里面的
数
据
库配置 ### 配置伪静态(nginx转
发
): ``` upstream webman { server 127.0.0.1:8787; } server { server_name
问答
以聊天室为例,定时器可以以房间号来做并且房间里的人共享这个定时器吗?
使用的是
GatewayWorker
使用场景:用户打开页面,页面就开始向设备
发
送
消息,获取
数
据
。 可以以房间号来做定时器定时向房间里的人推
送
消息吗?因为每个房间推
送
的内容不一样。
问答
webman
发
布 1.4.6
**主要功能特性及变更如下,感谢各位热心开
发
者的提交** ### 默认关闭控
制
器复用 利用命令`composer create-project workerman/webman` 新建的webman项目`app.controller_reuse` 配置将默认为 `false`,开
发
者仍然可以手动将其设置为`true`开启控
制
器复用。** > **提示** > 很多开
发
者习惯了传统框架每个请求都重新初始化一个控
制
器的模式,所以官方默认将控
制
器复用关闭。> 关闭控
制
器复用后`helloworld`压测性能损失约10%左右,但真实业务下性能损失可以忽略不计。 ### 支持控
制
器参
数
注入 例子 ```php <?user->find(1); } } ``` 感谢 [377960738](https://github.com/377960738) 的贡献 ### helpers.php里路径相关函
数
支持子路径参
数
问答
使用
GatewayWorker
,外部php程序如何向指定的客户端
发
消息?
使用
GatewayWorker
,外部php程序如何向指定的客户端
发
消息? 这个该怎么做?
问答
workerman没有存入mysql
数
据
库接口?
workerman没有存入mysql
数
据
库接口?我写网络游戏要排行榜哈 这个肯定要
数
据
库哈 我想用redis 存
数
据
库 毕竟他实现起来比较容易 我就不知道会不会跟workerman冲突哈 我对workerman还不是很熟悉
问答
package. package_length 在使用Channel的时候,出险这样的错误提示,请问,是什么原因,如何解决
* a、必须包含用户ID、用户信息、请求路径或请求路径、请求或传输的参
数
、返回
数
据
的处理方法 * b、参
数
全部为json字符串,接收后再处理为
数
组对象或json对象 * 接收
数
据
后,此页面仅做分
发
和接收处理,其余
数
据
由对应的模块功能
进
行处理 * * 返回
数
据
内容 * "send_msg" :返回的提示主要信息 * "send_desc":返回的主要描述信息 * "type"to_connection->send($message); }); // 订阅广播事件 $event_name = '广播'; // 收到广播事件后向当前
进
程内所有客户端连接
发
送
广播
数
据
(分布式集群)推
送
系统 * 可以实现服务端后台任务向用户推
送
数
据
* 后台用户定期执行某操作等 * 实现双向通讯 * -------------------------------特别说明--connection, $data) { $connection->send('ok'); if(empty($_GET)) return; // 是向某个worker
进
程中某个连接推
送
数
据
问答
主
进
程pcntl_signal_dispatch问题
您好,walkor大大,执行 reload的时候会给主
进
程
发
送
posix_kill($master_pid, SIGUSR1| SIGQUIT); ,但此时主
进
程挂起在 pcntl_wait($status, WUNTRACED); 这个地方,没有子
进
程退出,不会执行 pcntl_signal_dispatch ,这里是怎么个逻辑啊,还望walkor大大解惑,万分感谢
问答
webman 支持 oracle
数
据
库吗?
问下webman支持Oracle
数
据
库吗?文档里面好像没有。
问答
webman-admin统计行
数
过慢
#### 问题描述 ##### 一张表大约1200w
数
据
,使用mysql的SELECT COUNT(*) FROM
数
据
表;大约耗时40秒 ##### 查看webman-admin源码,
发
现Table控
制
器下的show方法执行到如下查询很缓慢。count(1):它会获取所有行的
数
据
,每行固定值1,也是行
数
加1。 count(id):id代表主键,它需要从所有行的
数
据
中解析出id字段,其中id肯定都不为NULL,行
数
加1。count(普通索引列):它需要从所有行的
数
据
中解析出普通索引列,然后判断是否为NULL,如果不是NULL,则行
数
+1。count(未加索引列):它会全表扫描获取所有
数
据
,解析中未加索引列,然后判断是否为NULL,如果不是NULL,则行
数
+1。
分享
webman-electron 使用webman开
发
windows桌面程序
config.php中的listen的端口一致 demo项目已改为兼容sqlite后,不支持原项目的所有表功能,webman官网只支持mysql,已注释下面 table.render 代码 建议在mysql上开
发
好后,使用navicat的
数
据
库迁移工具,将mysql
数
据
库转为sqlite
数
据
库,然后,关闭代码生成等功能 为了兼容sqlite,需要替换源webman-admin框架的2个文件,一个是 plugin/app/controller/Crud.php 可以自行对比修改了什么内容 ## 若出现环境变量问题的解决方法 如果在新电脑上运行,可能需要将resource\php8的目录添加到环境变量中,测试中
发
现可能是因为没有注释掉那个监控
进
程导致的。 如果在新客户端上部署,出现上面这个问题的话,2个建议,一是将monitor
进
程注释,
二
是将resource\php8的目录添加到环境变量中。可以使用下面语句,
制
作成.bat文件,用户双击即可添加环境变量。
问答
用workerman(使用
GatewayWorker
框架)做服务端,app连接经常出现无法连接的情况。
技术方案是: 客户端(pc/app-android设备/app-iOS设备) 连接 imws服务器(workerman+
GatewayWorker
框架); 客户端(同上)
发
送
数
据
; imws服务器接收,转
发
给 业务服务器(通过http协议执行API); 业务服务器 接收转
发
,
进
行业务处理,再调取GatewayClient
发
送
websocket,信息再
发
送
回给客户端(同上)。此时只想引入workerman解决即时通讯的,而即时通讯产生的
数
据
通过各种队列延时几百毫秒再写入。)大部分时候是OK的,但总会出现客户端(主要是app,PC端挺好的)连接不上imws服务器的情况(5%-10%吧,特别是移动网络环境下),目前是属于内测,所以初步排除用户并
发
大的原因。
问答
【紧急bug】webman2.1+tp-orm,
数
据
库查出来的每个
数
据
值,都会被当成类去加载!
#### 问题描述 webman2.0 + think-orm,查出来的每个
数
据
(每个字段的每个
数
据
),在toArray或者转json的时候,都会被Composer里面的ClassLoader当成类去加载[
数
据
库中的
数
据
](/upload/img/20250507/07681ad8fb727d.png) 在
数
据
库查出
数
据
后,调用json或者toArray,就会把每个查出的字段值都当成类去加载 ####
问答
GatewayWorker
Register被不明来源访问,不知道secretKey是否配置正确
$g->count = 4; $g->pingInterval = 10;// 心跳间隔 $g->pingData = '{"type":"ping"}';// 心跳
数
据
$g->lanIp = $registerIp;//本机ip,如果是分布式部署,需要设置成本机 IP //phpCli,允许多ip, 使用
GatewayWorker
\Lib\Gateway控
制
GatewayWorker
\Gateway PhpCli::$registerAddress = "$registerIp:$registerPort";
问答
同一个项目有两个gatewayworke
#### 同一个项目有两个gatewayworke,如何在其中一个
gatewayworker
向另一个
gatewayworker
发
送
消息?同一个项目有两个gatewayworke,如何在其中一个
gatewayworker
向另一个
gatewayworker
发
送
消息?
问答
webman gateway-work websocket
发
送
消息偶尔报错
; }catch (Throwable $e) { LogSave::logError($e,'wsSendReadyListRefresh-推
送
错误line":1366,"trace":"#0 /www/wwwroot/webman/vendor/workerman/gateway-worker/src/Lib/Gateway.php(1261):
GatewayWorker
getAllGatewayAddressesFromRegister() #1 /www/wwwroot/webman/vendor/workerman/gateway-worker/src/Lib/Gateway.php(1014):
GatewayWorker
\\Lib\\Gateway::sendToAllGateway() #2 /www/wwwroot/webman/app/functions.php(163):
GatewayWorker
\\Lib\
问答
webman 在 接收 POST JSON
数
据
的时候,出现解析不出来的情况
webman 环镜下 在多
进
程的情况下, A 用 Content-Type application/json 访问到
进
程1,是能正常解析的 B用户 Content-Type xxx访问
进
程2,后, A用户 提交的JSON
数
据
,访问到
进
程2,就解析不成功了。
问答
连接
数
上万时websocket就会出现php_network_getaddresses
目前的功能对bu
进
程
发
送
及时返回的消息比较多,分别开了gw和bu 32个
进
程,之前1核4g的服务器每当到了10000左右的连接
数
时,status查看 bu
进
程已经会出现n/a了,功能也用不了,之前以为是服务器的原因就加到了4核4g但是现在到了10000连接
数
时还是这样,查看日志报php_network_getaddresses这个错误,难道连接
数
过多了就会出现这个错误吗
问答
始终无法解决onMessage接受大量
数
据
写入redis或者GlobalData共享组件阻塞问题。
考虑了多
进
程的问题,但是维护很麻烦。我是在一个
进
程下有很多Connection链接
数
,导致接受的
数
据
像写入到其他地方,严重阻塞了当前主
进
程,延迟非常严重。
问答
webman使用laravel分页查询,只能查到第一页
数
据
,第
二
页之后的都是显示第一页的
数
据
根
据
指引 https://wenda.workerman.net/question/5872 使用laravel分页查询,最新版本,webman也是最新版本
« 上一页
1
...
68
69
70
71
72
73
74
75
...
430
下一页 »
« 上一页
71
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝