workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
分享
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文件,用户双击即可添加环境变量。
问答
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";
问答
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\
文档
onConnect
TCP三次握手完毕时)触
发
的回调函
数
。只要有client_id,并且对应的客户端在线,就可以调用```Gateway::sendToClient($client_id, $data)```等方法向这个客户端
发
送
数
据
。($uid)```
发
送
数
据
,通过```Gateway::isUidOnline($uid)```用户是否在线了。onConnect事件仅仅代表客户端与gateway完成了TCP三次握手,这时客户端还没有
发
来任何
数
据
,此时除了通过```$_SERVER['REMOTE_ADDR']```获得对方ip,没有其他可以鉴别客户端的
数
据
或者信息要想知道对方是谁,需要客户端
发
送
鉴权
数
据
,例如某个token或者用户名密码之类,在[onMesssge](on-messsge.md)里做鉴权。
问答
使用
GatewayWorker
,外部php程序如何向指定的客户端
发
消息?
使用
GatewayWorker
,外部php程序如何向指定的客户端
发
消息? 这个该怎么做?
问答
webman如何重新加载配置和中间件和路由等
数
据
#### 问题描述 #### 关于配置 我有些
数
据
是直接写在plugin/xxx/config/config.php 当插件导出
数
据
后,会将新的
数
据
覆盖到这个config.php里面 这个时候需要让webman重新加载一下配置使其生效,否则就必须得重新启动框架 #### 关于中间件 当框架启动后就会把中间件加载到内存中 而我的会去检测插件是否安装,是否已启用,才会把这个插件的中间件
进
行加载 #### 关于路由当框架运行后就会立马加载路由,而我的是插件安装,并且启用后才能
进
行访问 否则该插件路由都是禁止访问的 关于配置、中间件、路由,能否在不重启框架情况下,让其重新加载生效呢?
问答
循环获取
数
据
Alarm Clock 出现这个问题是什么原因?
我是通过GlobalData变量共享组件,不同
进
程之间获取
数
据
,但是我再循坏的时候要出现Alarm Clock 这个错误,求告知一下问题。
问答
同一个项目有两个gatewayworke
#### 同一个项目有两个gatewayworke,如何在其中一个
gatewayworker
向另一个
gatewayworker
发
送
消息?同一个项目有两个gatewayworke,如何在其中一个
gatewayworker
向另一个
gatewayworker
发
送
消息?
问答
用gatewayClient,给小程序回复信息,延迟太长
项目模型是gatewaywoker用来建立设备连接和ws连接,
gatewayworker
通过curl将
数
据
发
送
给TP5处理,小程序与getawayworker建立连接后,TP5通过getawayClient
问答
小白有个依赖注入的疑问,想请教一下 模型类不能像tp一样直接在方法参
数
里依赖注入吗
根
据
文档里的依赖注入,安装了,在控
制
器的__construct 或者 注解注入,都没有问题,是可以正常使用的,有个疑问,就是为什么不能直接在方法的参
数
里,
进
行依赖注入,之前用tp的时候,他那个模型类可以直接在控
制
器方法中依赖注入
进
来
问答
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
发
布 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里路径相关函
数
支持子路径参
数
问答
连接
数
上万时websocket就会出现php_network_getaddresses
目前的功能对bu
进
程
发
送
及时返回的消息比较多,分别开了gw和bu 32个
进
程,之前1核4g的服务器每当到了10000左右的连接
数
时,status查看 bu
进
程已经会出现n/a了,功能也用不了,之前以为是服务器的原因就加到了4核4g但是现在到了10000连接
数
时还是这样,查看日志报php_network_getaddresses这个错误,难道连接
数
过多了就会出现这个错误吗
文档
Gateway类的使用
# Gateway类的使用 文件位置:
GatewayWorker
/Gateway.php Gateway类用于初始化Gateway
进
程。Gateway
进
程是暴露给客户端的让其连接的
进
程。Gateway的onMessage行为固定为将客户端
数
据
转
发
给BusinessWorker。和Worker一样,可以设置Gateway
进
程启动后的回调函
数
,一般在这个回调里面初始化一些全局
数
据
9、onWorkerStop 和Worker一样,可以设置Gateway
进
程关闭的回调函
数
,一般在这个回调里面做
数
据
清理或者保存
数
据
工作 10、onConnect(比较少用到,开
发
者一般不用关注) 和Worker一样,可以设置onConnect回调,当有客户端连接上来时触
发
。Gateway::onConnect是运行在Gateway
进
程上,无法使用\
GatewayWorker
\Lib\Gateway类提供的接口 11、onClose(比较少用到,开
发
者一般不用关注) 和
问答
workerman没有存入mysql
数
据
库接口?
workerman没有存入mysql
数
据
库接口?我写网络游戏要排行榜哈 这个肯定要
数
据
库哈 我想用redis 存
数
据
库 毕竟他实现起来比较容易 我就不知道会不会跟workerman冲突哈 我对workerman还不是很熟悉
问答
连接成功了,但是
发
送
消息
发
不出去
ws.readyState判断是连接成功了,而且服务端也能查到连接,但是ws.send("ssssssssssssssssssssssssss");的时候,用ws.bufferedAmount判断一直
发
送
不出去
问答
主
进
程pcntl_signal_dispatch问题
您好,walkor大大,执行 reload的时候会给主
进
程
发
送
posix_kill($master_pid, SIGUSR1| SIGQUIT); ,但此时主
进
程挂起在 pcntl_wait($status, WUNTRACED); 这个地方,没有子
进
程退出,不会执行 pcntl_signal_dispatch ,这里是怎么个逻辑啊,还望walkor大大解惑,万分感谢
问答
webman 支持 oracle
数
据
库吗?
问下webman支持Oracle
数
据
库吗?文档里面好像没有。
问答
webman内部监听tcp, 当收到http请求之后需要向tcp服务端
发
送
消息
[截图](/upload/img/20230725/2564bf2ab1a3c1.png) 监听内部服务, 当接口调用时需要向此服务推
送
消息,应该用什么方案 #### 为此你搜索到了哪些方案及不适用的原因https://www.workerman.net/q/8323 这个是反向推
送
的 还有刷到帖子说用 Channel 组件 还没去研究 之前有使用过
GatewayWorker
是workerman做服务端向客户端推
送
消息
问答
【紧急bug】webman2.1+tp-orm,
数
据
库查出来的每个
数
据
值,都会被当成类去加载!
#### 问题描述 webman2.0 + think-orm,查出来的每个
数
据
(每个字段的每个
数
据
),在toArray或者转json的时候,都会被Composer里面的ClassLoader当成类去加载[
数
据
库中的
数
据
](/upload/img/20250507/07681ad8fb727d.png) 在
数
据
库查出
数
据
后,调用json或者toArray,就会把每个查出的字段值都当成类去加载 ####
« 上一页
1
...
70
71
72
73
74
75
76
77
...
448
下一页 »
« 上一页
73
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝