workerman
首页
问答
分享
手册
市场
商业
AI客服系统源码
聊天系统源码
Webman AI
物联网
赞助商
webman
搜索
+
发布
提问
分享
webman插件
webman应用
登录
注册
分享
分享:我开发的一个和jQuery具有一样语法的轻量、现代的
事
件处理的javascript库
just-event.js/actions/workflows/test.yml) --- 受[jQuery](https://github.com/jquery/jquery)启发的现代、轻量的
事
件工具如果你热衷于开发JavaScript插件,想摆脱jQuery,但也喜欢它对
事
件绑定的语法,那么这个库对你来说非常有用,这也是它的主要用例 ## 特性 - 零依赖,体积极小(gzipped: <= 2KB) -
事
件命名空间 - 批量绑定、解绑
事
件 - 轻松的
事
件委托 - 真实的DOM
事
件 ## 快速开始 ### NPM ```bash $ npm i -D just-event.js() | 阻止
事
件进一步传递 | | event.preventDefault() | event.preventDefault() | 阻止
事
件默认行为 委托 event(selector).one("click", ".foo", handler) ``` ### trigger 与`jQuery(selector).trigger()`有所
不
同
问答
workerman 后台启动后其他命令失
效
macOS Monterey PHP 版本:8.0.19 Workerman 版本:5.0.0(master) 相关描述: 使用 `php workerman.php start -d` 启动后命令失
效
。使用命令启动 Workerman 服
务
```bash php workerman.php start -d ``` ```bash Workerman[workerman.php] start in使用命令关闭 Workerman 服
务
```bash php workerman.php stop ``` ```bash Workerman[workerman.php] stop Workerman
问答
gatewayworker 有时
不
主动发ping 为什么
'{"type":"ping"}'; //无反应断开次数 $device_gateway->pingNotResponseLimit = 5; ``` 这是我设置的心跳检测, 设备端是收到ping后返
回
pang但是**有时**(大部分时候正常,服
务
器也未动过任何改动及操作)服
务
器端
不
主动发ping给设备,设备就
不
返
回
pang给服
务
器,造成设备**被**服
务
器断开连接。为什么服
务
器
不
发送ping,怎么解决这个
不
发送的问题?
问答
异步TCP消息
回
调
好像有类似的问题,但搜索也找
不
到了,请wolker再解答下,谢谢 用的GatewayWorker,开了4个TCP网关,1和websocket网关,8个worker进程,其中ID=0的worker进程打开AsyncTcpConnection异步TCP接收其他服
务
器的TCP数据,那么问题是ID=0的worker进程收到的onMessage
回
调总是来源于同一个网关进程吗?还有一个是Register进程
不
是应该很少的请求量吗,Register有很多的total_request是否说明内部通讯
不
畅,或者频繁掉线导致worker或者gateway向Register连接寻找对方的地址
问答
webman+gateway设备数据返
回
丢失
#### 问题描述 与硬件设备通信,设备登录成功定时批量发送指令,业
务
逻辑都是推送到队列处理,按理
不
存在处理延时问题,但是总有个别指令发送过去没有收到响应,
不
知如何定位问题,使用的都是最新版安装包[截图](/upload/img/20231025/256538d25ceb4c.png) 使用这种调试工具可以正常返
回
问答
PHPSocketIO
不
工作,emit没有作用
之前一直是好的,某一天我忘了干了什么,突然就
不
行了。我比较了vendor/workerman下所有文件以及node_modules/socket_io下所有文件,发现文件没有变化。SocketIO.on('connection')
回
调函数如下: function(Socket $client) { Worker::safeEcho("Client connectedEIO=3&transport=polling&t=O5t2B5k 服
务
端正确返
回
sid等信息 第二次带上sid,再请求 http://192.168.1.83:8026/socket.io/?,触发disconnect
事
件。$this->_isPaused) 这个循环中一直没有返
回
。第一次带上upgrade之后,没有第二次处理了。 服
务
端代码 while ($this->_recvBuffer !== '' && !
问答
@walkor,webman考虑做一个类似uniapp这样的插件市场
不
这样
不
管是对插件市场或者创作者来说都是一件好
事
,有收益自然就会有人制作各种插件,而确实需要某些功能的人来说,也
不
会说
不
舍得花一点钱购买插件,毕竟如果让他自己开发,成本可能是购买插件数十倍.当然,产
生
这种想法的原因很简单,我想挣钱,毕竟这东西
不
能光靠用爱来发电.
问答
Webman的协程上下文Context支持非Swoole
事
件驱动吗?
我原来用的是Swoole作为
事
件驱动,项目存在大量的Context写法,如果要切换到Select,还能
不
能兼容Context?
问答
关于一个进程的问题,我
不
是很明白,求解答。
我在做毕业设计实现扫码登录的时候使用到这个框架,但是有一
事
不
是很明白。比如在电脑端打开了websocket连接,这个框架返
回
一个进程id,接到id后,异步交给thinkphp动态
生
成一个包含进程id及验证的的二维码,手机扫码,如果点击页面上的确定就会发送数据(包括了进程id我想问一下当刷新页面时,能
不
能
不
分配一个新的进程id而继续用原来的进程id,或者说有什么解决办法吗?
问答
webman框架下,在new Crontab的
回
调函数里能发送成功数据,但fread接收
不
到结果。
\n"); // 读取推送结果 echo fread($client, 8192); }); 通过日志分析调用fwrite能成功发送数据,在127.0.0.1服
务
端onMessage
回
调里也能正常接收到数据,调用$connection->send("hello\n");的返
回
值为true,那表示数据已经成功写入到该连接的操作系统层的socket发送缓冲区,但fread接收
不
到结果。
不
知道什么原因,求解。
问答
ThinkPHP 调用workerman RPC服
务
超时
这期间重启过服
务
器。 1,数据库mysql正常 2,redis正常 3,thinkphp的后台访问正常。 4,workman-json-rpc启动正常,状态如图:  5,Thinkphp调用服
务
代码如下 ```php /** * 用户注册 */request); } catch(Exception $e) { $array = format_return_array(400, '注册发
生
异常'); } } // 结果返
回
echo $array; } ```
问答
如何异步执行任
务
最近打算搞一个消息队列服
务
,有两个角色:
生
产者和消费者,
生
产者向消息队列添加任
务
,消费者负责从消息队列取任
务
并执行任
务
。 消费者取到任
务
开始执行任
务
后,如果执行时间超过了一个值,消息队列服
务
就会向消费者发送停止任
务
的消息。 但是由于是阻塞执行,消费者无法在执行过程中接收到停止任
务
的消息。 看了一下文档提供的异步执行任
务
的例子,似乎执行任
务
这块也是阻塞执行的,只是把它从主业
务
中剥离出来了而已。 有人知道什么方法可以异步执行任
务
的时候也能够接收到停止任
务
的消息吗?
问答
发现大量用户触发onclose方法,这是怎么
回
事
?
做了一个聊天系统,客户反应有时会出现接收
不
到消息的问题。 然后我发现有大量用户
不
知道为什么会触发workerman的onclose方法,几乎每秒都有触发onclose方法的。系统是web版,包括微信网页和pc网页,用户可能自己退出,但也
不
应该出现大量的onclose触发,而且每秒都有!系统最初
不
是我开发,发现代码里是后端进行心跳检测的,onclose方法里调用Gateway::sendToAll() 发送下图的消息 !
文档
内存泄漏
一般进程占用几十M内存是很正常的情况,当进程处理超大请求或者维护海量连接时,单个进程内存占用可能会达到上百M也是常有的
事
。这部分内存使用后php可能并
不
会全部交还操作系统。存在**长
生
命周期的**数组(注意是长
生
命周期的数组,普通数组没
事
) 2.并且这个**长
生
命周期的**数组会无限扩张(业
务
无限向其插入数据,从
不
清理数据) 如果1 2条件**同时满足**(注意是同时满足),那么将会产
生
内存泄漏。data; $data[] = time(); return response($foo->sayHello()); } } ``` global 关键字定义的数组并
不
会在函数或者类方法执行完毕后
回
收即使开发者没有找到泄漏点,webman自带的monitor服
务
会适时安全重启发
生
内存泄漏的进程,释放内存。 如果你实在想尽量规避内存泄漏,可以参考以下建议。 1.
问答
在自定义进程中获取
不
到远程设备的IP
"\n"; } 自定义进程,在onConnect
事
件里面,使用$connection->getRemoteIp(),获取到的确是本机服
务
器的IP,而
不
是远程设备的IP,请问是什么情况?
问答
gateway的长连接出现监听
不
到onclose
事
件的情况
在onclose方法处增加了业
务
代码,偶尔会出现没有进入onClose的方法内,这是什么原因?日志跟踪也没有,是
不
是会出现workman服
务
无法监听到长连接断线的情况呢?
问答
请教如何让定时任
务
随start.php启动(已解决)
-----分割线-------------- 通过官方的AI,已解决: ## 步骤一:新建进程文件 在 app/foo 目录下创建一个新的进程文件,例如 Task.php,并在其中定义你的定时任
务
。\n"; }); } } ## 步骤二:配置进程文件随webman启动 接下来,打开配置文件 config/process.php,并新增如下配置以注册你的定时任
务
进程: return'handler' => app\foo\Task::class ], ]; **注意,这里放在第一级** ## 步骤三:重启webman 最后,重启webman以使配置
生
效
请注意,定时任
务
不
会马上执行,所有定时任
务
将会在下一分钟开始计时执行。 说明 通过以上步骤,你在 app/foo 目录下的定时任
务
进程会在webman启动时自动运行。确保你的定时任
务
逻辑在 onWorkerStart 方法中正确实现。
分享
使用携程让webman-shared-cache缓存过期立即
生
效
只能手动删了 有2种方法 1.创建后使用队列去删 (我懒
不
想搞的太复杂) 2.用携程去删代码如下 Coroutine::create(function () use ($result) {
问答
【已解决】thinkorm配置文件中“连接池配置(仅在 swow/swoole 驱动下有
效
) ”关于最新版疑问
这是在支持连接池之后更新的,当前thinkorm配置文件中有“连接池配置(仅在 swow/swoole 驱动下有
效
)”注释。现在最新thinkorm没有 “(仅在 swow/swoole 驱动下有
效
)” 注释了,是
不
是非swow/swoole也支持?之前的注释 ```php // 连接池配置(仅在 swow/swoole 驱动下有
效
) ``` 现在的注释 ```php // 连接池配置 ```
问答
实现Webhook服
务
的的猜想!
...... #### 想要Webman实现Hook订阅服
务
很多功能平台服
务
商都会有这个功能: 1.我平台提供支付
回
调服
务
,开发者在平台消费:我将资金变动主动推送到他的服
务
器去 2.我平台提供汇率通知服
务
器组合实现 对于【2】点对多就需要goroutine协程功能,我redis-queue开32个worker消费也会出现
不
及时情况。所以需要一个 只管瞬间对N个Url发起访问:返
回
结果可以弱化。 #### 以下是问的 AI ```php <?echo "Code: $code\nHeaders: $headers\n"; }); } // 等待所有协程完成 $pool->wait(); ``` 好的,以下是使用 Golang 实现高
效
并发最终我是想把这个任
务
分发给云函数来处理,
不
能影响Webman主程序。
« 上一页
1
...
27
28
29
30
31
32
33
34
...
467
下一页 »
« 上一页
30
下一页 »
赞助商
+成为赞助商
请作者喝咖啡
×
🔝