workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
请问服务器和硬件通讯字节流分帧如何实现
服务器和硬件通讯,由于
数
据
包较大,硬件小伙伴说需要字节流分帧,空间有限不能整个字节流
发
送
,需要按帧
发
送
;大佬有没有提供关于具体的协议这块实现指导~
问答
LInux 启动
GatewayWorker
报错
DEBUG mode Fatal error: Uncaught Exception: class \Protocols\WebSocket not exist in /opt/lampp/htdocs/
GatewayWorker
/vendor/workerman/workerman/Worker.php:2155 Stack trace: #0 /opt/lampp/htdocs/
GatewayWorker
/vendor/workerman/workerman/Worker.php(619): Workerman\Worker->listen() #1 /opt/lampp/htdocs/
GatewayWorker
/vendor/workerman/workerman/Worker.php(503): Workerman\Worker::initWorkers() #2 /opt/lampp/htdocs/
GatewayWorker
/start.php(37): Workerman\Worker::runAll() #3 {main} thrown in /opt/lampp/htdocs/
GatewayWorker
/vendor/workerman
问答
心跳检测里,服务端在哪个函
数
里获得客户端心跳检测返回的
数
据
的?
心跳检测里,服务端在哪个函
数
里获得客户端心跳检测返回的
数
据
的?
问答
请教个webman子
进
程内存溢出的问题
#### 问题描述 第一个问题 子
进
程是一个mqtt使用
进
程,运行一段时间后就会出现内存溢出,导致设备控
制
不正常,使用的官方mqtt插件,代码在下面,有好心人路过看看是什么情况,项目已经上线,急需处理
进
程内没有
发
生报错,所以``Worker::stopAll();``没有执行重启 第
二
问题 主
进
程内是在哪里可以监测子
进
程状态,怎么实现检测到子
进
程死掉了,重启子
进
程 可加 V 有偿处理:13577428582function publish($data) { /*Log::warning('Mptt server error. ', [ 'message' => '
发
送
消息
问答
gatwayworker一对一聊天,刷新页面后,clientid重新生成绑定,但是就接收不到消息了,有什么方法解决吗
想实现一对一聊天,在正常登陆页面后,可以正常一对一聊天,当前刷新页面后,另一方
发
送
消息就不能正常接收了,必须都刷新页面才能正常接收,应该是刷新页面后clientid改变,造成
发
送
消息一方还是
发
送
给之前的当前刷新页面后,另一方发送消息就不能正常接收了,必须都刷新页面才能正常接收,应该是刷新页面后clientid改变,造成发送消息一方还是发送给之前的clientid了吧,有遇到类似问题的大佬,希望可以给指点一
二
问答
推
送
代码使用git钩子
进
行同步更新会导致
进
程退出,应该排除哪些目录可规避此问题
#### 问题描述 本地代码写好git push推
送
,服务器用了hooks,会自动check out同步更新,但是会导致webman
进
程退出 下面截图展示了测试过程,加了一个空行推
送
测试,然后报错,check
文档
通讯协议作用
# 通讯协议的作用 由于TCP是基于流的,客户端
发
送
的请求
数
据
是像水流一样流入到服务端,服务端探测到有
数
据
到来后应该检查
数
据
是否是完整的,因为可能只是一个请求的部分
数
据
到达服务端,甚至可能是多个请求连在一起到达服务端## 在Workerman中为什么要
制
定协议? 传统PHP开
发
都是基于Web的,基本上都是HTTP协议,HTTP协议的解析处理都由WebServer独自承担了,所以开
发
者不会关心协议方面的事情。然而当我们需要基于非HTTP协议开
发
时,开
发
者就需要考虑协议的事情了。,开
发
者可以定
制
自己的通讯协议,定
制
方法见下一节内容。text协议开
发
调试都非常简单,可用于绝大多
数
自定义协议的场景,并且支持telnet调试。如果开
发
者要开
发
自己的应用协议,可以直接使用text协议,不用再单独开
发
。
问答
分布式通讯组件重复注册事件的问题 -已解决
使用on函
数
回调注册事件A 组件服务端会收到2次subscribe请求.因为我想对这个组件
进
行
二
次开
发
,目的是为了某个事件在被注册的同时立马对该事件
进
行publish.但是我测试
发
现每次该事件的回调都会被执行2次.请问这个能给个解决方案吗?====================是代码问题=======修改如下=========== 修改Client.php文件中的函
数
onRemoteConnect为: ```php /** *
文档
getUidByClientId
## 参
数
* ```$client_id``` 字符串client_id。## 返回值 返回字符串或者
数
字,返回类型取决于之前执行bindUid绑定的uid的
数
据
类型 ## 注意 在onClose回调中无法使用此接口,解决方法是bindUid时记录一个```$_SESSION一般是在```onMessage/onWebSocketConnect```里赋值的,但是```onMessage/onWebSocketConnect```在onClose调用前不一定会被调用,比如客户端
发
起了tcp连接后未
发
送
任何
数
据
然后关闭了连接,类似这种情况服务端```Events ::onClose```回调中不会有```$_SESSION['uid']```值,所以```Events::onClose## 范例 ```php use \
GatewayWorker
\Lib\Gateway; class Events { ...
问答
gatewayworker
分布式部署扩容后的性能问题
目前按照分布式的方式部署了2台
gatewayworker
,每台开30个gateway
进
程,100个bussinessworker
进
程(16核32G,云服务商主机),注册中心放在其中一台上面,上周两台服务器cpu由于业务增长,cpu达到了50%,cpu的sy指标都高于us,差不多是us的两倍,为了应付后续的业务增长,增加部署了两台(8核16G),但是
发
现对之前2台的cpu都没有起到降低作用,基本没有变化。而且cpu里大部分都是30个gateway
进
程在消耗,每个线程可以消耗23左右,哪位大神救救急。
问答
GatewayWorker
客户端能否在swoole框架中使用
用
GatewayWorker
做了一个聊天室。 然后我想在swoole的框架里使用客户端
发
消息。
问答
workerman-chat 如何限
制
接收消息的长度
workerman-chat 如何限
制
接收消息的长度?
发
现在客户端可以恶意传入超大字符串,造成服务器严重卡顿
问答
workerman中调用pcntl_fork 实现多
进
程时,无法回收子
进
程问题
$pid = pcntl_fork(); //父
进
程和子
进
程都会执行下面代码 if ($pid == -1) { //错误处理:创建子
进
程失败时返回-1./等待子
进
程中断,防止子
进
程成为僵尸
进
程。} else { //子
进
程逻辑 exit() } 如上,正常情况下 子
进
程逻辑结束之后,需要手动调用exit结束子
进
程。Workerman\Worker->run() #4 /home/hero/workspace/php/hero_data/vendor/workerman/workerman/Worker.php(1554):
GatewayWorker
hero_data/vendor/workerman/workerman/Worker.php(1384): Workerman\Worker::forkOneWorkerForLinux(Object(
GatewayWorker
分享
分享一个PHPer开
发
常用的Docker Compose 的多服务开
发
环境
## 分享一个我自己写的php开箱即用的docker开
发
环境 # [Docker FrankenPHP 服务环境](https://github.com/maxhuangman/php-docker)基于 Docker Compose 的多服务开
发
环境,集成 Webman开
发
环境、Web 服务器(FrankenPHP)、
数
据
库(MySQL)、缓存(Redis)、搜索引擎(Elasticsearch/webman/Dockerfile`) - 支持传统PHP-FPM项目,如Laravel、Thinkphp、WordPress等,使用FrankenPHP服务
进
行优化,相同配置能提升约3~5倍性能 -Elasticsearch - DPanel - Alist 以下是我的开源地址: https://github.com/maxhuangman/php-docker ps:欢迎大佬们提提意见,或者加上自己想要的开
发
环境
问答
使用 withoutField 不返回新增字段的
数
据
2、我使用的 webman 1.5.0 , 当我在
数
据
库某表中新增字段card, img 后,使用 withoutField('pwd')->select(); 没有返回新增字段,是缓存的原因吗?
问答
内存持续上涨直到服务器宕机,关闭控
制
器常驻内存后正常
项目从开始就开启了控
制
器常驻内存。一直
发
现项目在服务器内存会上涨但不会降回去这个问题,但是幅度不大。 而且只要重启了项目就没了,所以就没怎么管。然后AI指出可能是 controller_reuse = true 导致的问题,说的有理有
据
,我也反复用AI排查了很多次,答案都是一致的,而且确实关闭控
制
器常驻内存就解决了。源码我没深入读,如果真是这样,那不同订单 Path 参
数
不一样导致路径不同,每个动态路由单独缓存一个控
制
器实例也许真是这个问题的根源。我技术水平有限,如果有不足之处请谅解。## 环境 - PHP `>= 8.4` - `workerman/webman-framework` `v2.2.1` - `workerman/workerman` `v5.1.10` - 常驻
进
程运行- HTTP worker
数
量 `16` - 开启了 `app.controller_reuse = true` ## 实测现象 如果路由是这种带 path 参
数
的形式: ```php Route
问答
关于webman+gateway的运行中修改控
制
器代码导致gateway的tcp客户端掉线的问题
#### 问题描述 大佬们 请教个问题,我用的webman+gateway 现在是涉及到一个更新控
制
器代码 gateway的tcp链接掉线的问题, 一更新代码
进
程重启,tcp客户端硬件就掉线了,目前是因为我要开着tcp和硬件
进
行开
发
,每次一更新代码以后,都要stop一下 然后等5-10秒再start一下。 如果是debug模式下,就要先停止,然后等5-10秒再start一下。我修改的代码是app/控
制
器下的代码 非plugin/Events.php #### 诉求 请问应该如何实现 更新app/控
制
器下的代码 能实现热更新,但gateway不重启
进
程的方法(或tcp不掉线的方法
问答
Event::onClose的触
发
时间
Gate/Worker模式中,服务端每隔一段时间检查客户是否存在,如果客户长时间没
发
来
数
据
,就断开客户连接。请问这时断开客户连接的话,会触
发
Event::onClose函
数
吗?
问答
关于dtu设备返回指令,gateway如何获取用户端uid,
发
送
该指令给用户端的问题
1,用户(13969)在手机上点击按钮
发
送
{"type":"user","uid":"1234","command":"02 03 05 d5 aa 52 d5"}给服务器, 2,通过服务器再把指令(0203 05 d5 aa 52 d5)
发
送
给dtu设备(2002), 3,dtu设备向服务器返回一个指令(02 03 05 d5 aa 52 d6), 4,服务器收到指令后,我想通过sendtouid()
发
送
给用户,告知用户设备正常可以使用。
问答
/* * 注意这里
进
程
数
必须设置为1 */ $worker->count = 1;
https://www.workerman.net/doc/workerman/worker/listen.html /* * 注意这里
进
程
数
必须设置为1 */ $worker->count =
« 上一页
1
...
105
106
107
108
109
110
111
112
...
449
下一页 »
« 上一页
108
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝