协程是对「异步事件」的 语法糖封装?

问题描述 学习协程有多天,但感觉在wokrerman中,协程其实就是对「异步事件」的语法糖封装?(网络io和磁盘io) 不知道我的理解正确否? 为此你搜索到了哪些方案及不适用的原因 没有...

bobshipwood 发表与 2025-10-27 423 浏览 1 回答
关于协程并发的问题? Barrier::wait($barrier)没能正常工作?

问题描述 如下图,能正常的到$aa数组, $barrier = Barrier::create(); $aa = []; for ($i=1; $i<5; $i++) { Coroutine::create(function () use ($barrier, $i, &$aa) { ...

bobshipwood 发表与 2025-10-21 312 浏览 1 回答
想利用swoole协程下提升下并发.

问题描述 原本的代码,do中用到的modbus tcp链接(一种底层3次tcp握手才能在上面跑的协议)。其中foreach下面会每一次迭代会同步执行代码,包括建立modbus tcp链接(因为不同的服务端ip)。 我想问的是,这里面用协程会不会提升并发? $plcs = []; foreach ($devicePlcs as $devicePlc) { $plcs[] = $this->do($devi...

bobshipwood 发表与 2025-10-21 665 浏览 1 回答
想问下在协程内创建Timer和在Timer内创建协程的情况对比?

问题描述 1 在Timer内创建协程,是否可行?假设Timer已经轮询到期(示例中2.5秒),协程内的执行是否会继续(假设2.5秒内都无法执行完毕这个协程?) $timer_id = Timer::add(2.5, function() { Coroutine::create(function () { $this->coroutine() } }); 2 在协程内创建Time...

bobshipwood 发表与 2025-10-20 273 浏览 2 回答
在单一进程下,所有协程共享workerman的mqtt连接来发送数据是否可行?

问题描述 假设在onWorkerStart里面创建了一个workerman的mqtt链接,底下所有协程用他来发送数据是否可行? $worker->onWorkerStart = function ($worker) { try { $mqttClient = new \Workerman\Mqtt\Client(env('MQTT_URL'), ['cli...

bobshipwood 发表与 2025-10-17 278 浏览 2 回答
workerman的协程,运行完就懂销毁协程内的变量?

问题描述 我最近在搞个plc(modbus-tcp)通讯,其中需要用到协程处理.我想问个问题,就是协程会自动销毁其变量吗 $worker2->onWorkerStart = function (TcpConnection $connection, Request $request) { Coroutine::create(function () { $a = 1; $b =...

bobshipwood 发表与 2025-10-16 313 浏览 2 回答
在协程中创建的定时器,在协程消亡的过程中,会不会随之消亡?

问题描述 ## 假定用swoole驱动 $server = new worker();\ $server->onMessage( function(TcpConnection $connection, $data) { Timer::add( function (1) { ...

bobshipwood 发表与 2025-10-13 425 浏览 1 回答
我想学习下gataway?

问题描述 如下是关于gataway的介绍, https://www.workerman.net/doc/gateway-worker/principle.html 我的问题是: 1 business进程拿到gateway进程的链接后,就建立链接,我的理解是建立一个tcp的长链接。gateway是tcp的服务端,business是tcp的客户端,我的理解正确吗? 2 client1和client7是怎么通讯的?假设cl...

bobshipwood 发表与 2025-09-30 423 浏览 3 回答
我想咨询下,workerman的swoole协程,能否加速物联网modbus tcp协议的开发?

问题描述 以下从官网中,拷贝的例子,做些修改,在我要sleep(1)和sleep(3)处发生了协程切换,使得整个过程只需要3秒就能完成一次的请求,我想问下,如果sleep函数换成发起modbus tcp的请求(一种类似curl的请求,但是不是http协议的),会有这样的效果吗? $worker = new Worker('http://0.0.0.0:8001'); $worker->event...

bobshipwood 发表与 2025-09-28 307 浏览 1 回答
我想问下,他是怎么实现主副协程切换的,?

问题描述 官网的例子中,onmessage应该是个主协程的概念吧?然后在开启两个子协程。我想问下流程: 1 在子协程遇到sleep的时候,就直接运行到主协程那,主协程在遇到$result[] = $channel->pop();就阻塞, 2 等待子协程push的时候,主协程就接着运行$result[] = $channel->pop();,然后再次循环,再次遇到阻塞, 3 直到第2个子协程运行完毕,主协程...

bobshipwood 发表与 2025-09-26 514 浏览 3 回答
为啥协程文章里面的数据库连接类会用单例?s

问题描述 <?php use Workerman\Connection\TcpConnection; use Workerman\Coroutine\Context; use Workerman\Coroutine; use Workerman\Coroutine\Pool; use Workerman\Events\Swoole; use Workerman\Protocols\Http\Request; u...

bobshipwood 发表与 2025-09-25 1091 浏览 8 回答
event扩展和swoole扩展的区别?

问题描述 如果只安装了swoole扩展,可以使用完整的协成功能吗? 为此你搜索到了哪些方案及不适用的原因 没有...

bobshipwood 发表与 2025-09-23 334 浏览 1 回答
要使用swoole驱动的话,除了安装event扩展外,一定要安装swoole扩展吗?

问题描述 要使用swoole驱动的话,除了安装event扩展外,一定要安装swoole扩展吗? 为此你搜索到了哪些方案及不适用的原因 没有...

bobshipwood 发表与 2025-09-23 427 浏览 2 回答
我想咨询下协程的好处?

问题描述 上诉是协程的用法: $worker1 = new Worker('http://0.0.0.0:8001'); $worker1->eventLoop = Swoole::class; // 使用Swoole协程 $worker1->onMessage = function (TcpConnection $connection, Request $request) { Coroutine...

bobshipwood 发表与 2025-09-19 1166 浏览 7 回答
workerman中,如果发送的两次modbus tcp连接需要一定的间隔时间,怎么办?

问题描述 业务需要定时去PLC获取数据,为此我在一个进程内,定义了多个定时器 foreach ($devicePlcs as $devicePlc) { // 如果不存在,则表示新增,需创建timer数组 if (!isset($this->timers[$devicePlc->id])) { $timer_id = Tim...

bobshipwood 发表与 2025-07-01 451 浏览 2 回答
workerman中,while(true)和timer::add的冲突?

问题描述 以下的代码,我写在onworkerstart里面,每隔10秒中向redis的队列写数据,但是为啥while(true)的部分没有执行呢?如果去掉while(true),那只能执行1次,不能执行多次? protected function loop() { Timer::add(10, function () { $data['DEVICE_ID'] =...

bobshipwood 发表与 2025-05-20 806 浏览 4 回答
connection对象可以存放在redis中,共享给其他workerman用吗?

问题描述 大概意思就是想要个集群,现在不知道那个connection对象能否共享给其他worekerman用? 为此你搜索到了哪些方案及不适用的原因 找不到...

bobshipwood 发表与 2024-12-02 713 浏览 1 回答
我用workerman做了个tcp的服务器,想把他部署在k8s上,有没有什么方法?

问题描述 如题 为此你搜索到了哪些方案及不适用的原因 没有找到...

bobshipwood 发表与 2024-12-01 573 浏览 0 回答
我想问下关于onmessage离的connection对象?我想开发个聊天室的项目

问题描述 我想问的问题是,假设每次发的包都包含有fromUserId,content,toUserId这些字段, $userIdToConnection[$fromUserId] = $connection; 那这句话后,他每次的$connection都是一样的吗? $worker->onMessage = function ($connection, $data) { global $userId...

bobshipwood 发表与 2024-11-29 639 浏览 1 回答
开启workerman后,能否用不同的子worker,来监听不同的请求?

问题描述 $worker = new Worker(); $worker->count = 4; $worker->onWorkerStart = function ($worker) { try { switch ($worker->id) { case 0: ...

bobshipwood 发表与 2024-11-28 571 浏览 1 回答

bobshipwood

-390
积分
0
获赞数
0
粉丝数
2024-10-28 加入
🔝