1--TEST-- 2swoole_server/task: task callback 3--SKIPIF-- 4<?php require __DIR__ . '/../../include/skipif.inc'; ?> 5--FILE-- 6<?php 7use Swoole\Server; 8require __DIR__ . '/../../include/bootstrap.php'; 9$pm = new SwooleTest\ProcessManager; 10$pm->parentFunc = function ($pid) use ($pm) 11{ 12 $cli = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC); 13 $cli->set(['open_eof_check' => true, "package_eof" => "\r\n\r\n"]); 14// $cli->set(['open_eof_split' => true, 'package_eof' => "\r\n\r\n"]); 15 $cli->connect('127.0.0.1', $pm->getFreePort(), 0.5) or die("ERROR"); 16 17 $cli->send("task-01") or die("ERROR"); 18 19 $res = json_decode(trim($cli->recv()), true); 20 Assert::same($res['code'], 0); 21 Assert::same($res['message'], 'hello world'); 22 23 echo "SUCCESS\n"; 24 25 $res = json_decode(trim($cli->recv()), true); 26 Assert::same($res['code'], 0); 27 Assert::same($res['message'], 'hello world'); 28 echo "SUCCESS\n"; 29 30 swoole_process::kill($pid); 31}; 32 33$pm->childFunc = function () use ($pm) 34{ 35 ini_set('swoole.display_errors', 'Off'); 36 $serv = new Server('127.0.0.1', $pm->getFreePort()); 37 $serv->set(array( 38 "worker_num" => 1, 39 'task_worker_num' => 2, 40 'log_file' => '/dev/null', 41 )); 42 $serv->on("WorkerStart", function (Server $serv) use ($pm) 43 { 44 $pm->wakeup(); 45 }); 46 $serv->on('receive', function (Server $serv, $fd, $rid, $data) 47 { 48 $serv->task(['type' => 'array', 'value' => $data], -1, function ($serv, $taskId, $data) use ($fd) { 49 $serv->send($fd, json_encode($data)."\r\n\r\n"); 50 }); 51 $serv->task(['type' => 'array', 'value' => $data, 'worker_id' => 0], 0, function ($serv, $taskId, $data) use ($fd) { 52 $serv->send($fd, json_encode($data)."\r\n\r\n"); 53 }); 54 }); 55 56 $serv->on('task', function (Server $serv, $task_id, $worker_id, $data) 57 { 58 return array("code" => 0, 'message' => 'hello world', 'sid' => uniqid()); 59 }); 60 61 $serv->on('finish', function (Server $serv, $fd, $rid, $data) 62 { 63 64 }); 65 $serv->start(); 66}; 67 68$pm->childFirst(); 69$pm->run(); 70?> 71--EXPECT-- 72SUCCESS 73SUCCESS 74