workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
问答
webman 的两种方式运行的
效
率问题
我想问两个问题: 第一个问题:我的描述是否正确,如果
不
正确应该怎么说? 第二个问题:第一种方式的执行
效
率是
不
是高于第二种方式?大概能高多少?(给个大概数字就行)
问答
GatewayWorker高并发定时器失
效
正常情况下这个定时器工作正常,但一遇到大量并发链接,比如一秒几十个链接,这个定时器就
不
起作用了(数据库中没有 tmp_int2=2的记录, 1为连接 2为定时器删除连接 3为成功认证后删除定时器),导致大量的无
效
连接的存在
问答
GatewayWorker没有触发连接onConnect
回
调
这是
回
调onConnect代码 !gateway->count=4,起始端口为4000 // 则一般会使用4000 4001 4002 4003 4个端口作为内部通讯端口 $gateway->startPort = 2900; // 服
务
注册地址//$gateway->pingData = '{"type":"ping"}'; /* // 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的
回
调connection->onWebSocketConnect = function($connection , $http_header) { // 可以在这里判断连接来源是否合法,
不
合法就关掉连接$connection->websocketType = Workerman\Protocols\Websocket::BINARY_TYPE_ARRAYBUFFER; }; */ // 如果
不
是在根目录启动
分享
让你的webman实现类似宝塔一样管理定时任
务
2 对应端口必须放行,
不
然就会出现插入任
务
而无法通知进程执行任
务
了。5 秒级任
务
尽量
不
要设置执行时间太少,多进程情况下每个任
务
的计数器有差异,会导致同一秒执行
不
同次数的任
务
6 虽然默认情况下只提供了 url, eval,shell 三种类型任
务
,但是插件对此进行了很好的扩展7 任
务
添加修改后是下一分钟开始
生
效
,这是workerman/crontab设计时就是这样的 实现
效
果图大概如下: !<br> ## 注意
事
项 ***仅支持linux,仅支持linux,仅支持linux。***<br> ***秒级任
务
不
要小于5秒,每个进程计时器会有差异,将会导致任
务
在同一秒执行
不
同次数的任
务
*** 安装 ```shell composer require fly-cms/webman-crontab
问答
orm模型观察者无
效
#### 数据库orm模型观察者无
效
#### 模型以及观察者关键代码 ```php # 模型关键代码 public static function boot() { parent::boot()
文档
defaultMaxSendBufferSize
不
设置默认为```1MB```。```Connection::$defaultMaxSendBufferSize```可以动态设置,设置后只对之后产
生
的新连接有
效
此属性影响[onBufferFull](../worker/on-buffer-full.md)
回
调。
问答
GatewayWorker 遇到的一个自动更新奇怪的问题
线上 GatewayWorker 持续运行中,今天提交了一些新代码,没有重启服
务
,也没有文件监控reload服
务
,按理说新提交的代码
不
会
生
效
,但是看自定义的一些日志记录,有一部分居然是新代码才有的日志,说明某些进程更新了我提交的代码,我看workerman.log 里面也没有报错或者进程重启的记录,GatewayWorker启动后
不
是常驻内存的吗?
问答
关于 workerman-json-rpc
服
务
端 ```php $worker = new Worker('JsonNL://0.0.0.0:2015'); ``` 客户端 ```php $address_array = array
不
是非常理解异步,我的理解是 服
务
端接收请求,处理请求,此时在处理请求的过程中,服
务
端
不
会一直阻塞在这里(
不
会一直等待处理结果),而是会继续接收其他请求,当处理中的请求处理完成后,会自动向客户端返
回
处理结果,
不
知道这样理解对
不
对,从官网的示例代码中,同步与异步的代码只有些许差别,看得
不
是很明白 4.$uid); 这两行代码能否再帮忙讲解下,执行了第一行代码,会产
生
怎样的
效
果呢(是
不
是表明处理请求的过程,但并没有返
回
处理结果,如果这个请求很快就处理完了,那处理完的结果放在哪里的呢),执行完第二句代码(这句代码的意思是,这个时候我需要返
回
客户端数据了,然后再去拿刚才的处理结果,但这样的话,
不
是很明白,是去哪里拿刚才处理的结果呢) 5.内部究竟是如何做到异步的呢 有点啰嗦,因为最近公司在做RPC
问答
如何按天记录gatewayworker业
务
日志
大神,我想记录gatewayworker的业
务
日志,但Worker::$stdoutFile似乎只能在启动gatewayworker的时候创建文件,并
不
能按天来建立日志文件记录业
务
日志,我在workerman手册上看到logfile,如图所示,但是用file_put_contents打印数据会
不
会对gatewayworker的性能有什么影响?包括业
务
进程,业
务
处理时间什么的。目前我这边打印的数据,每条最多也
不
到一百个字节,但是量很大,一秒可能有好几条,一天下来大概有几十Mb,请问大神file_put_contents这个方法可以吗?或者还有什么更好的方法,看到有人说直接在
生
成workerman日志的代码中改,这个可以吗?
问答
ai音乐
生
成 最后解析失败
#### 问题描述 ai音乐
生
成 最后解析失败 !
问答
webman多语言组件严重BUG
locale本质上对单次请求有
效
,通过把用户个性化设置的语言储存在数据库或者cookie,可以达到locale对单个用户有
效
的
效
果,比如网站默认提供英文,用户可以自定义英文 日文,而且这个设定只对这个用户自己有
效
而webman中由于共享了一个单例 通过locale设定语言后 对整个网站都
生
效
,一个用户设置了英文 整个网站的所有用户都会看到英文,想要达到fpm模式的切换语言业
务
效
果 只能在每次调用trans函数时再设定一次语言这显然属于是一个BUG而
不
是webman独有的特性
问答
ws.onmessage我可以在js页面获取到设备的返
回
值,后台怎么获取返
回
值啊
ws.onmessage我可以在js页面获取到设备的返
回
值,可是项目是前后端分离的,前端只把数据发给我,比如点击重启,请求我的接口xxx,然后我向设备发送了重启命令 后台: Gateway::$registerAddress'personInfoCount'=>'1', ]); Gateway::sendToUid($uid, $data); 然后怎么接收他的返
回
值啊,成功还是失败,我看
不
到 前端没问题 ws = new WebSocket("ws://xxxxx:8282"); ws.onopen = function() {}; ws.onmessage = function(e) { console.log(e.data); }; 前端就能接收到,可是现在用
不
到前端, 我想知道后台发起重启怎么接收到返
回
值
问答
webman控制器能原样返
回
数据吗?
#### 问题描述 比如我在控制器中返
回
一个数组,穿过中间件的时候,$handler($request)后得到的response的body还是这个数组,而
不
是"Array"字符串。如果可以这么处理的话,控制器中就
不
需要使用json()返
回
。我在中间件中全局处理下响应就可以了
问答
升级到最新版3.4.1,ai输出答案没有打字
效
果
#### 问题描述 您好,升级到最新版3.4.1,ai输出没有打字
效
果 https://zysh.chat/
问答
ai发消息没有
回
复,什么问题
[](/upload/img/20231026/26653a13834a5b.png) 买了2个key,都是发消息
不
呢个
回
复
问答
workman 进程重启后的问题
```php $worker->onMessage = function ($connection, $request){ //设置单进程请求量达到额定时重启,防止代码写得
不
好产
生
OOMstatic $maxRequest; if(++$maxRequest>5000){ Worker::stopAll(); } }; // 启用swoole的
事
件驱动原因查出来了,因为启用swoole的
事
件驱动造成的,只要
不
启用就正常。 请问这是为什么,有解决办法吗
问答
onBufferFull被调用后,怎么停止send???
手册原文: **每个连接都有一个单独的应用层发送缓冲区,缓冲区大小由TcpConnection::$maxSendBufferSize决定,默认值为1MB,可以手动设置更改大小,更改后会对所有连接
生
效
。该
回
调在应用层发送缓冲区数据全部发送完毕后触发。一般与onBufferFull配合使用,例如在onBufferFull时停止向对端继续send数据,在onBufferDrain恢复写入数据。
问答
现在有个需求,客户端发完消息想知道是否发成功,就是需要服
务
端有
回
执,然后好做消息重发?
现在有个需求,客户端发完消息想知道是否发成功,就是需要服
务
端有
回
执,然后好做消息重发?怎么实现呢?client A发消息server,server转发给client B,然后client B收成功后发ack给server,server再把ack信息
回
执给client A,请问老大是这样的吗?还是server这边每发个消息启动个定时器比如10秒内没收到client B的ack确认就告诉client A消息发送失败了,但这样感觉挺复杂了 本质还是对消息重发流程
不
太懂
问答
workerman怎么实现一个进程一个端口监听
不
同的https网站
比如:一个进程,监听0.0.0.0:443地址,当有连接请求时,根据
不
同的域名,使用相对应的ssl证书去解密.就是先有一个socket,
不
设置ssl证书,等连接来时,根据
不
同的域名,给socket配置相应的证书,
不
过我看https原理发现这样
不
通,https是先进性ssl握手,之后再将数据返
回
到上层, 想实现这个
效
果用workerman能吗,php能吗.
问答
webman session 是否有bug
写了2个控制器,一个控制器set session rand(1000,9999) 另一个控制器去读取,结果多次刷新执行 set seesion的控制器,结果session值有时候会变有时候
不
变,
不
是每次都
生
效
« 上一页
1
...
33
34
35
36
37
38
39
40
...
461
下一页 »
« 上一页
36
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝