- 在类型推断过程中使用 getNamespacedClassName 方法处理类名 - 确保对象存储时使用完整的命名空间类名 - 添加了 Swoole 服务器示例代码 - 修复了 PHP 请求信息中的路径翻译设置 - 更新了 Python 示例中的打印方法调用pull/1/head
parent
24ea4d9806
commit
28d12102a4
5 changed files with 69 additions and 5 deletions
@ -0,0 +1,43 @@ |
||||
<?php |
||||
function getpid($serv) |
||||
{ |
||||
return $serv->mode === SWOOLE_THREAD ? \Swoole\Thread::getId() : posix_getpid(); |
||||
} |
||||
|
||||
function main() |
||||
{ |
||||
$serv = new Swoole\Server("0.0.0.0", 9501); |
||||
$serv->set([ |
||||
'worker_num' => 2, |
||||
'task_worker_num' => 3, |
||||
]); |
||||
|
||||
$serv->on('workerStart', function ($serv, $worker_id) { |
||||
echo "[#" . getpid($serv) . "]\tWorker#{$worker_id} is started.\n"; |
||||
}); |
||||
|
||||
$serv->on('workerStop', function ($serv, $worker_id) { |
||||
echo "[#" . getpid($serv) . "]\tWorker#{$worker_id} is stopped.\n"; |
||||
}); |
||||
|
||||
$serv->on('connect', function ($serv, $fd, $reactor_id) { |
||||
echo "[#" . getpid($serv) . "]\tClient@[$fd:$reactor_id]: Connect.\n"; |
||||
}); |
||||
|
||||
$serv->on('receive', function (Swoole\Server $serv, $fd, $reactor_id, $data) { |
||||
echo "[#" . $serv->worker_id . "]\tClient[$fd] receive data: $data\n"; |
||||
if (!$serv->send($fd, "hello {$data}\n")) { |
||||
echo "error\n"; |
||||
} |
||||
}); |
||||
|
||||
$serv->on('close', function ($serv, $fd, $reactor_id) { |
||||
echo "[#" . getpid($serv) . "]\tClient@[$fd:$reactor_id]: Close.\n"; |
||||
}); |
||||
|
||||
$serv->on('task', function ($serv, $src_worker_id, $task) { |
||||
var_dump($task); |
||||
}); |
||||
|
||||
$serv->start(); |
||||
} |
||||
@ -0,0 +1,13 @@ |
||||
<?php |
||||
|
||||
use Swoole\Server; |
||||
|
||||
function main() |
||||
{ |
||||
$serv = new Server("0.0.0.0", 9501); |
||||
$serv->on('receive', function (Server $serv, $fd, $reactor_id, $data) { |
||||
echo "[#" . $serv->worker_id . "]\tClient[$fd] receive data: $data\n"; |
||||
$serv->send($fd, "hello {$data}\n"); |
||||
}); |
||||
$serv->start(); |
||||
} |
||||
Loading…
Reference in new issue