workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
onWorkerStart里面是stream流数据,前端连接
不
上的问题,求解答
#### 问题描述,谢谢解答 **onWorkerStart里面是stream流数据,导致前端连接失败,因为在
不
停的推送数据,默认没有执行完成,求1个思路,感谢。var_dump($line); // 在这里我想实现,把line数据推送给前端连接对象,$line数据格式如下图所示 // 但是前端连接
不
上$body->eof()) { ]逐行读取影响了,因为在
不
停的推送数据,没有执行完成 // 上面的while注释掉,前端可以连接成功 } }"\n"; } }; // 当客户端建立连接时,
不
匹配则主动断开 $worker->onConnect = function ($connection) { $connection->; } else { $connection->symbol = $symbol; } }; }; // 当有客户端发来消息时,执行的
回
调函数
文档
add
注意:定时器是在当前进程中运行的,workerman中
不
会创建新的进程或者线程去运行定时器。``` callback ```
回
调函数```注意:如果
回
调函数是类的方法,则方法必须是public属性``` ``` args ```
回
调函数的参数,必须为数组,数组元素为参数值 ``` persistent ``` 是否是持久的,如果只想定时执行一次,则传递false(只执行一次的任
务
在执行完毕后会自动销毁,
不
必调用```Timer::del()```)。'/vendor/autoload.php'; $task = new Worker(); // 开启多少个进程运行定时任
务
,注意业
务
是否在多进程有并发问题 $task->count = 1; $task->count = 4; $worker->onWorkerStart = function(Worker $worker) { // 只在id编号为0的进程上设置定时器,其它1、2、3号进程
不
设置定时器
问答
redis-queue 时间久了消息延迟处理
不
准
本地项目没问题Redis跟GatewayWorker在一个服
务
器,但是线上的项目和Redis没有在一个服
务
器,周一设置的某一条消息4秒后执行,到今天变成了1秒钟执行一次,本地的也在跑但是没问题,线上的时间越跑触发时间越短
问答
官网之前线上案例显示打
不
开了
比如:一个分布式统计监控系统 包含PHP客户端 、服
务
端 http://www.workerman.net:55757/ workerman-vmstat https://www.workerman.net
问答
webman 可以动态链接数据库,
不
用在配置文件写。动态获取链接
#### 问题描述 webman是
不
是只能读取配置里面的数据库信息才能链接数据库,
不
能动态的链接,今天搞了一下午,都没搞成功,使用的是tp6的模型,包括使用 protected $connection[](/upload/img/20231128/286565af8287f6.png),这种定义也
不
可以。是我的定义的有问题还是什么 使用后提示这种问题,如果
不
能实现动态切换配置数据库,就只能换其他方案了。第一次用webman #### 为此你搜索到了哪些方案及
不
适用的原因 因为业
务
需要链接
不
同的数据库,无法在配置里面写死,只能说动态链接。
问答
同一台服
务
器运行2个gatewayWroker 能否互相通讯吗?
比如服
务
器中运行了2个gateWayWorker 127.0.0.1:40001 ->运行了AgateWayWorker 127.0.0.1:40002 ->运行了BgateWayWorker 客户端连接到
问答
使用java语言连接项目中workerman-chat服
务
端,连接数到达44的时候,再打开一个新的连接就会,发送消息相隔一秒左右就自动断开连接了?
用**java**语言作为**客户端**连接项目中workerman-chat服
务
端,**当连接数到达44的时候**,再打开一个新的连接, 发送消息相隔一秒左右就自动断开连接了,但是,**通过浏览器访问,
不
受这个限制**。 官方案例3.0.12 Workerman 3.2.9,官方案例3.5.15 getway 进程数设置的是4 下面是运行php start.php status的结果,也没有看到异常信息 这个是服
务
端type":"login","name":"凤渡","room_id":4,"user_id":1542990392,"group_id":5,"room_type":1} 试过以下方法: 1、换
不
同的服
务
器分别连接,也
不
行 2、看论坛说可能是客户端和系统的问题,然后部署到linux-centos7里面,然后再访问,也
不
行 3、想过可能是版本的问题,但是项目中的版本是
不
可能升级的,所以就放弃这个想法了 4、修改getway
问答
关于chat的一些疑问。
Events.php 这个是主要业
务
所在,这个看得明白了。如果布署在
生
产环境,里面的IP需要改变么?如何设置?假设我的IP是110.120.119.100。下面中的哪些需要修改?
分享
php怎么跟硬件交互
wifi墙插,150一台,跟普通的墙壁插座外观上没有任何区别,但可以连无线,可通过接口和小程序远程控制,机麻、饮水机等电器插上面就可以远程控制其通电了; 先看官方文档: 消息推送【上行】 当设备状态发
生
变化时1.上/下线消息 2.指令执行消息 3.设备触发的
事
件消息 4.设备自主上报的状态消息 设备管理【下发】 设备管理 - 获取设备列表 接口地址: http://iot-api.unisoft.cn/EtwYEFmu61需指定),只返
回
是否下发成功,而
不
返
回
指令执行结果 属性 1 string 命令,格式为 设备的属性名称=属性值;在设备详情页,可查询设备的可用指令以及可用的值;如power=1,则下发命令接通设备电源看了文档之后我们就会发现,有两方面需要处理: 1.设备的状态等变更是会通知给我们指定的地址,我们在指定的地址POST接受数据然后做数据处理就可以,所以这里就
不
细说了,如果有
不
清楚的可以参考官方文档$ts; //准备参数 $data = array( "device" => 1,//设备ID,读取设备列表时返
回
的ID "sync" => 1,//同步返
回
指令执行结果,默认为1,
不
需要改动,当sync
问答
webman redis队列,
不
能使用Soap Client吗?
#### 问题描述 使用php webman,windows 环境中使用php windows.php start 启动服
务
,提示Soap Client not found,扩展实际已经开启了.
问答
可以添加自定义配置文件吗?
[截图](/upload/img/20220828/28630b6d3677bf.png) 如图,我自定义了一个配置文件,用config('model.customer')返
回
是NULL,请问是
不
支持这种吗
文档
stopAll
如果你想停止整个workerman服
务
,请调用`posix_kill(posix_getppid(), SIGINT)` ### 参数 无参数 ### 返
回
值 无返
回
## 范例 max_request类似php-fpm的max_request属性,主要用于解决php业
务
代码bug引起的内存泄露问题。 start.php ```php <?
文档
send buffer overflow
例如服
务
端处理一个请求需要10毫秒,那么单个进程每秒最多处理100个请求,如果客户端每秒发来200个请求, 那么就有100个请求排队等待处理。出现busy进程则可能是以下原因: 1、业
务
代码有死循环。表现为对应进程占用cpu率很高,对应进程一直是busy状态 2、业
务
代码可能阻塞在某个外部资源请求上。如果cpu
不
高,需要用 strace -ttp $pid 命令跟踪下businessWorker进程系统调用, 是否有read(fd=x、 poll(fd=x类似的代码,如果有说明进程在等待某个fd的数据返
回
, 这时用lsof -p $pid | grep $fd 查看进程在等待哪个外部资源的返
回
,从而定位是哪里问题。如果是业
务
比较慢,则需要打日志定位下业
务
哪个部分比较耗时,然后做响应优化。
问答
workerman 运行一段时间就报这个错,然后服
务
就停止了
[attach]2492[/attach] 业
务
里面就是些更新数据的操作,一直会出这个问题,请问有大佬知道怎么解决吗
问答
workerman实现服
务
器端数据表实时推送到与app本地的数据库
使用场景,是一个聊天的app,用户登录app后,workerman推送数据,实现app的本地数据表与服
务
器的同步。app大部分访问app本地数据库,服
务
端数据表有更新时实时推送到app更新,app本地的数据库。想请教一下数据库同步方面的经验或者思路。
问答
关于workerman-chat的问题
现在遇到的问题是 $client_id 系统自动
生
成的,我想用在我们页面设置的session里的一个ID 来充当这个$client_id ,我的session在index.php设置 可是在protectedfunction createGlobalClientId()这个函数里取
不
到(显示$_SESSION数组是空的)。
问答
多应用 默认控制器和方法 默认应用的控制器和方法
不
能使用的问题
www.workerman.net/plugin/11 域名和插件对应是按照 **https://www.workerman.net/q/7922 说的进行配置的** #### 按照上面的伪静态规则写,默认应用的默认控制器和方法就是
不
能用upload/img/20220915/156322fca26599.png) 具体问题是这样的: 现在通过 scrm.taoguapi.com 和blog.taoguapi.com 进行访问都能返
回
[截图](/upload/img/20220915/15632302ebb526.png) 但是home.taoguapi.com 缺
不
行 !
问答
多人聊天的一个bug
public static function onGatewayMessage, 在这个函数里, 如果接收的数据格式错误, 返
回
false, 这时系统会踢掉客户端, 担客户端的状态是
不
对的, 没有被正常踢掉,
不
能检测到这个断开.
问答
PHP8.3 json_validate 存在bug
#### 问题描述 json_validate 在验证数字字符串时候返
回
true ``` var_dump(json_validate('12345677878')); ``` bool(true) ---------------理解有误------------------------- 12345677878 是一个 合格json,允许正常解析,所以
不
存在bug,并
不
是所有的json值都必须大括号包起来
问答
使用nginx反向代理到webman后,下载文件失败
#### 问题描述 使用webman做服
务
端远程下载,客户端用php去请求这个接口下载远程的文件,没有下载完就报错了 客户端使用IP+端口方式进行请求下载就没问题,使用nginx代理下载就会被断开#### 程序代码 服
务
端代码 ``` $data = json_decode($data, true); $file = base_path("/version/{$data['version_namefile_exists($file)) { return $this->fail("{$data['version_name']} 版本更新包
不
存在"); } // 返
回
文件 return response#add_header Access-Control-Allow-Credentials true; #
不
加也行 return 200; # 204也可以,只要返
回
成功码即可 } if ( -f $request_uri) { proxy_pass http://of; break;
« 上一页
1
...
165
166
167
168
169
170
171
172
...
468
下一页 »
« 上一页
168
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝