首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
外部的变量在recevice回调和task回调如何同步
{{{ **<?php $serv = new swoole_server("127.0.0.1", 9501); $serv->set(array( 'worker_num' => 1, 'task_worker_num' => 1, )); $serv->on('connect', function ($serv, $fd){ echo "Client:Connect.\n"; }); $serv->buffer = array(); $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->buffer [$fd] = array('fd'=> $fd); var_dump($serv); $task_id = $serv->task($data); }); $serv->on('task', function ($serv, $fd, $from_id, $data) { var_dump($serv); return 111; }); $serv->on('finish', function ($serv, $task_id, $data) { echo "AsyncTask[$task_id] Finish: $data".PHP_EOL;; }); $serv->on('close', function ($serv, $fd) { echo "Client: Close.\n"; }); $serv->start();** }}} 在receive回调,设置$serv->buffer [$fd] ;在task回调,打印$serv,没有得到刚设置$serv->buffer [$fd]信息。
发布于10年前 · 1 次浏览 · 来自
提问
M
M·Reinhard
{{{ **<?php $serv = new swoole_server("127.0.0.1", 9501); $serv->set(array( 'worker_num' => 1, 'task_worker_num' => 1, )); $serv->on('connect', function ($serv, $fd){ echo "Client:Connect.\n"; }); $serv->buffer = array(); $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->buffer [$fd] = array('fd'=> $fd); var_dump($serv); $task_id = $serv->task($data); }); $serv->on('task', function ($serv, $fd, $from_id, $data) { var_dump($serv); return 111; }); $serv->on('finish', function ($serv, $task_id, $data) { echo "AsyncTask[$task_id] Finish: $data".PHP_EOL;; }); $serv->on('close', function ($serv, $fd) { echo "Client: Close.\n"; }); $serv->start();** }}} 在receive回调,设置$serv->buffer [$fd] ;在task回调,打印$serv,没有得到刚设置$serv->buffer [$fd]信息。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2016-06-05
l
liyangphp
onReceive和onTask不在同一个进程内执行,所以到onTask这里是无法获取到$serv->buffer的值。
赞
0
回复