本文整理汇总了PHP中swoole_server::reload方法的典型用法代码示例。如果您正苦于以下问题:PHP swoole_server::reload方法的具体用法?PHP swoole_server::reload怎么用?PHP swoole_server::reload使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类swoole_server
的用法示例。
在下文中一共展示了swoole_server::reload方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: my_onReceive
function my_onReceive(swoole_server $serv, $fd, $from_id, $data)
{
$data = json_decode(trim($data), TRUE);
$cmd = $data['cmd'];
if ($cmd == "reload") {
$serv->reload($serv);
} elseif ($cmd == "task") {
$task_id = $serv->task($data, 0);
$info = "Dispath AsyncTask: id=" . $task_id;
$serv->send($fd, $info);
echo $info . "\n";
} elseif ($cmd == "info") {
$info = $serv->connection_info($fd);
$serv->send($fd, 'Info: ' . var_export($info, true) . PHP_EOL);
} elseif ($cmd == "broadcast") {
$start_fd = 0;
while (true) {
$conn_list = $serv->connection_list($start_fd, 10);
if ($conn_list === false) {
break;
}
$start_fd = end($conn_list);
foreach ($conn_list as $conn) {
if ($conn === $fd) {
continue;
}
$serv->send($conn, "hello from {$fd}\n");
}
}
} elseif ($cmd == "error") {
hello_no_exists();
} elseif ($cmd == "shutdown") {
$serv->shutdown();
} else {
$serv->send($fd, 'Server Receive: ' . json_encode($data), $from_id);
if (isset($data['cmd'])) {
switch ($data['cmd']) {
case 'get':
$key = $data['key'];
$res = $serv->taskwait($data, 0.5, 0);
$serv->send($fd, PHP_EOL . "get " . $res['key'] . ": " . $res['val']);
break;
case "set":
$serv->task($data, 0);
break;
case "del":
$serv->task($data, 0);
break;
case "reload":
break;
default:
echo "server:" . $data . PHP_EOL;
}
}
//$serv->close($fd);
}
//echo "Client:Data. fd=$fd|from_id=$from_id|data=$data";
//$serv->deltimer(800);
//swoole_server_send($serv, $other_fd, "Server: $data", $other_from_id);
}
示例2: onReceive
public function onReceive(swoole_server $server, $fd, $from_id, $data)
{
if (empty($data)) {
// 发送数据给客户端,请求包错误
$data = array('code' => 500, 'msg' => '非法请求', 'data' => null);
$server->send($fd, json_encode($data));
}
//局域网管理
$udpClient = $server->connection_info($fd, $from_id);
if ($udpClient['server_port'] == '9502') {
$data = str_replace("\r\n\r\n", "", $data);
switch ($data) {
case 'stop':
echo '服务器关闭: ' . date('Y-m-d H:i:s') . PHP_EOL;
$server->shutdown();
$server->send($fd, '服务器关闭成功');
break;
case 'reload':
echo 'Worker进程重启: ' . date('Y-m-d H:i:s') . PHP_EOL;
$server->reload();
$server->send($fd, '服务器Worker重启成功');
break;
default:
$server->send($fd, '非法请求');
break;
}
} else {
$data = json_decode($data, true);
echo $data['name'] . " say hello " . Test::WORD . "\n";
$server->send($fd, $data['name'] . " say hello " . Test::WORD);
}
}
示例3: onReceive
public function onReceive(\swoole_server $server, $fd, $from_id, $data)
{
$data = trim($data);
if ($data == 'Stop') {
//停止
$server->shutdown();
$server->send($fd, 'success', $from_id);
} else {
if ($data == 'Stats') {
//状态
$data = $server->stats();
$server->send($fd, json_encode($data), $from_id);
} else {
if ($data == 'Reload') {
//重启
$server->reload();
$server->send($fd, 'success', $from_id);
} else {
if ($data == 'ResetTelnet') {
//重置所有telnet链接
} else {
$data = json_decode($data, true);
if ($data['act'] == 'Telnet' && isset($data['ip']) && isset($data['cmd'])) {
//执行命令
$service = TelnetEvent::getService($data['ip']);
if ($service == null) {
$result['code'] = 2;
} else {
if ($data['cmd'] > 0) {
if (isset($data['arg'])) {
$result['data'] = $service->exec($data['cmd'], $data['arg']);
} else {
$result['data'] = $service->exec($data['cmd']);
}
if ($result == null || $result['data'] == null) {
$result = ['code' => 3];
} else {
$result['code'] = 1;
}
} else {
$service->getSwitch()->connect();
if ($service->getSwitch()->isConnect()) {
$result['code'] = 1;
} else {
$result['code'] = 3;
}
}
}
$server->send($fd, json_encode($result), $from_id);
} else {
$server->send($fd, 'unknown command!', $from_id);
}
}
}
}
}
$server->close($fd);
}
示例4: my_onReceive
function my_onReceive(swoole_server $serv, $fd, $from_id, $data)
{
$cmd = trim($data);
if ($cmd == "reload") {
$serv->reload($serv);
} elseif ($cmd == "task") {
$task_id = $serv->task("hello world");
echo "Dispath AsyncTask: id={$task_id}\n";
} elseif ($cmd == "taskwait") {
$result = $serv->taskwait("hello world", 2);
echo "SyncTask: result={$result}\n";
} elseif ($cmd == "info") {
$info = $serv->connection_info($fd);
$serv->send($fd, 'Info: ' . var_export($info, true) . PHP_EOL);
} elseif ($cmd == "broadcast") {
$start_fd = 0;
while (true) {
$conn_list = $serv->connection_list($start_fd, 10);
if ($conn_list === false) {
break;
}
$start_fd = end($conn_list);
foreach ($conn_list as $conn) {
if ($conn === $fd) {
continue;
}
$serv->send($conn, "hello from {$fd}\n");
}
}
} elseif ($cmd == "error") {
hello_no_exists();
} elseif (substr($cmd, 0, 5) == "close") {
$close_fd = substr($cmd, 6);
$serv->close($close_fd);
} elseif ($cmd == "shutdown") {
$serv->shutdown();
} else {
$serv->send($fd, 'Swoole: ' . $data, $from_id);
//$serv->close($fd);
}
//echo "Client:Data. fd=$fd|from_id=$from_id|data=$data";
//$serv->deltimer(800);
//swoole_server_send($serv, $other_fd, "Server: $data", $other_from_id);
}
示例5: my_onReceive
function my_onReceive(swoole_server $serv, $fd, $from_id, $data)
{
//my_log("received: $data");
$cmd = trim($data);
if ($cmd == "reload") {
$serv->reload($serv);
} elseif ($cmd == "task") {
$task_id = $serv->task("hello world");
echo "Dispath AsyncTask: id={$task_id}\n";
} elseif ($cmd == "taskwait") {
$result = $serv->taskwait("hello world", 2);
echo "SyncTask: result={$result}\n";
} elseif ($cmd == "hellotask") {
$serv->task("hellotask");
} elseif ($cmd == "close") {
$serv->send($fd, "close connection\n");
$result = $serv->close($fd);
} elseif ($cmd == "info") {
$info = $serv->connection_info($fd);
$serv->send($fd, 'Info: ' . var_export($info, true) . PHP_EOL);
} elseif ($cmd == "stats") {
$serv_stats = $serv->stats();
$serv->send($fd, 'Stats: ' . var_export($serv_stats, true) . PHP_EOL);
} elseif ($cmd == "broadcast") {
broadcast($serv, $fd, "hello from {$fd}\n");
} elseif ($cmd == "error") {
hello_no_exists();
} elseif (substr($cmd, 0, 5) == "close") {
$close_fd = substr($cmd, 6);
$serv->close($close_fd);
} elseif ($cmd == "shutdown") {
$serv->shutdown();
} else {
$ret = $serv->send($fd, 'Swoole: ' . $data, $from_id);
//var_dump($ret);
//$serv->close($fd);
}
//echo "Client:Data. fd=$fd|from_id=$from_id|data=$data";
//$serv->deltimer(800);
//swoole_server_send($serv, $other_fd, "Server: $data", $other_from_id);
}
示例6: my_onReceive
function my_onReceive(swoole_server $serv, $fd, $from_id, $data)
{
my_log("Worker#{$serv->worker_pid} Client[{$fd}@{$from_id}]: received: {$data}");
$cmd = trim($data);
if ($cmd == "reload") {
$serv->reload();
} elseif ($cmd == "task") {
$task_id = $serv->task("task-" . $fd);
echo "Dispath AsyncTask: id={$task_id}\n";
} elseif ($cmd == "taskwait") {
$result = $serv->taskwait("taskwait");
if ($result) {
$serv->send($fd, "taskwaitok");
}
echo "SyncTask: result=" . var_export($result, true) . "\n";
} elseif ($cmd == "hellotask") {
$serv->task("hellotask");
} elseif ($cmd == "sendto") {
$serv->sendto("127.0.0.1", 9999, "hello world");
} elseif ($cmd == "close") {
$serv->send($fd, "close connection\n");
$result = $serv->close($fd);
} elseif ($cmd == "info") {
$info = $serv->connection_info(strval($fd), $from_id);
var_dump($info["remote_ip"]);
$serv->send($fd, 'Info: ' . var_export($info, true) . PHP_EOL);
} elseif ($cmd == 'proxy') {
$serv->send(1, "hello world\n");
} elseif ($cmd == 'sleep') {
sleep(10);
} elseif ($cmd == 'foreach') {
foreach ($serv->connections as $fd) {
echo "conn : {$fd}\n";
}
return;
} elseif ($cmd == 'tick') {
$serv->tick(2000, function ($id) {
echo "tick #{$id}\n";
});
} elseif ($cmd == 'addtimer') {
$serv->addtimer(3000);
} elseif ($cmd == "list") {
$start_fd = 0;
echo "broadcast\n";
while (true) {
$conn_list = $serv->connection_list($start_fd, 10);
if (empty($conn_list)) {
echo "iterates finished\n";
break;
}
$start_fd = end($conn_list);
var_dump($conn_list);
}
} elseif ($cmd == "list2") {
foreach ($serv->connections as $con) {
var_dump($serv->connection_info($con));
}
} elseif ($cmd == "stats") {
$serv_stats = $serv->stats();
$serv->send($fd, 'Stats: ' . var_export($serv_stats, true) . PHP_EOL);
} elseif ($cmd == "broadcast") {
broadcast($serv, $fd, "hello from {$fd}\n");
} elseif ($cmd == "error") {
hello_no_exists();
} elseif ($cmd == "exit") {
exit("worker php exit.\n");
} elseif (substr($cmd, 0, 5) == "close") {
$close_fd = substr($cmd, 6);
$serv->close($close_fd);
} elseif ($cmd == "shutdown") {
$serv->shutdown();
} elseif ($cmd == 'sendbuffer') {
$buffer = G::getBuffer($fd);
$buffer->append("hello\n");
$serv->send($fd, $buffer);
} else {
$ret = $serv->send($fd, 'Swoole: ' . $data, $from_id);
var_dump($ret);
//$serv->close($fd);
}
//echo "Client:Data. fd=$fd|from_id=$from_id|data=$data";
// $serv->after(
// 800, function () {
// echo "hello";
// }
// );
//swoole_server_send($serv, $other_fd, "Server: $data", $other_from_id);
}
示例7: reload
/**
* only reload task worker
*/
public function reload()
{
$this->server->reload();
}
示例8: my_onReceive
function my_onReceive(swoole_server $serv, $fd, $from_id, $data)
{
my_log("Worker#{$serv->worker_pid} Client[{$fd}@{$from_id}]: received: {$data}");
$cmd = trim($data);
if ($cmd == "reload") {
$serv->reload();
} elseif ($cmd == "task") {
$serv->task("task-" . $fd);
} elseif ($cmd == "taskwait") {
$result = $serv->taskwait("taskwait");
if ($result) {
$serv->send($fd, "taskwaitok");
}
} elseif ($cmd == "taskWaitMulti") {
$tasks = array('taskWaitMulti', 'taskWaitMulti');
$result = $serv->taskWaitMulti($tasks);
if (is_array($result)) {
$serv->send($fd, "taskWaitMulti OK");
} else {
$serv->send($fd, "taskWaitMulti error");
}
} elseif ($cmd == "hellotask") {
$serv->task("hellotask");
} elseif ($cmd == "sendto") {
$serv->sendto("127.0.0.1", 9999, "hello world");
} elseif ($cmd == "close") {
$serv->close($fd);
} elseif ($cmd == "info") {
$info = $serv->connection_info(strval($fd), $from_id);
$serv->send($fd, serialize($info));
} elseif ($cmd == 'proxy') {
$serv->send(1, "hello world\n");
} elseif ($cmd == 'sleep') {
sleep(10);
} elseif ($cmd == 'sendfile') {
$serv->sendfile($fd, __DIR__ . '/test.jpg');
} elseif ($cmd == 'foreach') {
foreach ($serv->connections as $fd) {
echo "conn : {$fd}\n";
}
return;
} elseif ($cmd == 'tick') {
$serv->tick(1000, function ($id) use($serv, $fd) {
$serv->send($fd, "tick");
$serv->clearTimer($id);
});
} elseif ($cmd == 'after') {
$serv->after(1000, function ($id) use($serv, $fd) {
$serv->send($fd, "after");
});
} elseif ($cmd == "list") {
$start_fd = 0;
echo "broadcast\n";
while (true) {
$conn_list = $serv->connection_list($start_fd, 10);
if (empty($conn_list)) {
echo "iterates finished\n";
break;
}
$start_fd = end($conn_list);
var_dump($conn_list);
}
} elseif ($cmd == "list2") {
foreach ($serv->connections as $con) {
var_dump($serv->connection_info($con));
}
} elseif ($cmd == "stats") {
$serv_stats = $serv->stats();
$serv->send($fd, 'Stats: ' . var_export($serv_stats, true) . "\ncount=" . count($serv->connections) . PHP_EOL);
} elseif ($cmd == "broadcast") {
broadcast($serv, $fd, "hello from {$fd}\n");
} elseif ($cmd == "error") {
hello_no_exists();
} elseif ($cmd == "exit") {
exit("worker php exit.\n");
} elseif (substr($cmd, 0, 5) == "close") {
$close_fd = substr($cmd, 6);
$serv->close($close_fd);
} elseif ($cmd == "shutdown") {
$serv->shutdown();
} elseif ($cmd == "fatalerror") {
require __DIR__ . '/php/error.php';
} elseif ($cmd == 'sendbuffer') {
$buffer = G::getBuffer($fd);
$buffer->append("hello\n");
$serv->send($fd, $buffer);
} elseif ($cmd == 'defer') {
$serv->defer(function () use($fd, $serv) {
$serv->close($fd);
$serv->defer(function () {
echo "deferd\n";
});
});
$serv->send($fd, 'Swoole: ' . $data, $from_id);
} elseif ($cmd == 'big_resp') {
$serv->send($fd, str_repeat('A', 256 * 1024));
} elseif ($cmd == 'big_task') {
$serv->task($fd . ' ' . str_repeat('A', 256 * 1024 - 8));
} else {
$serv->send($fd, 'Swoole: ' . $data, $from_id);
//.........这里部分代码省略.........
示例9: onReceive
public function onReceive(\swoole_server $server, $fd, $fromId, $data)
{
if ($data == $this->preSysCmd . "reload") {
$ret = intval($server->reload());
$server->send($fd, $ret);
} elseif ($data == $this->preSysCmd . "info") {
$info = $server->connection_info($fd);
$server->send($fd, 'Info: ' . var_export($info, true) . PHP_EOL);
} elseif ($data == $this->preSysCmd . "stats") {
$serv_stats = $server->stats();
$server->send($fd, 'Stats: ' . var_export($serv_stats, true) . PHP_EOL);
} elseif ($data == $this->preSysCmd . "shutdown") {
$server->shutdown();
} else {
$this->protocol->onReceive($server, $fd, $fromId, $data);
}
}
示例10: onReceive
/**
* 对外提供接口
*
* @param $server swoole_server对象
* @param $fd TCP客户端连接的文件描述符
* @param $from_id TCP连接所在的Reactor线程ID
* @param $data 收到的数据内容
*/
public function onReceive(swoole_server $server, $fd, $from_id, $data)
{
if (empty($data)) {
// 发送数据给客户端,请求包错误
$data = array('code' => 500, 'msg' => '非法请求', 'data' => null);
$server->send($fd, json_encode($data));
}
//局域网管理
$udpClient = $server->connection_info($fd, $from_id);
if ($udpClient['server_port'] == '9504') {
echo $data . PHP_EOL;
switch ($data) {
case 'stop':
echo '服务器关闭: ' . date('Y-m-d H:i:s') . PHP_EOL;
$server->shutdown();
$server->send($fd, '服务器关闭成功');
break;
case 'reload':
echo 'Worker进程重启: ' . date('Y-m-d H:i:s') . PHP_EOL;
$server->reload();
$server->send($fd, '服务器Worker重启成功');
break;
default:
$server->send($fd, '非法请求');
break;
}
} else {
$data = json_decode($data, true);
//任务数据
$list = $data['list'];
//请求类型
$type = $data['type'];
switch ($type) {
//添加定时器
case 'add':
//添加定时器
$timeInterval = $list['s_interval'];
$taskId = $list['s_id'];
$timerId = $server->tick($timeInterval, array($this, 'onTimer'), $list);
//更新任务
Task::updateTimer($taskId, $timerId);
$data = array('code' => 200, 'msg' => '添加定时器成功', 'data' => null);
$server->send($fd, json_encode($data));
break;
//修改定时器
//修改定时器
case 'edit':
//修改url,定时器间隔时间
$data = array('code' => 200, 'msg' => '修改定时器成功', 'data' => null);
$server->send($fd, json_encode($data));
break;
//删除定时器
//删除定时器
case 'del':
echo '删除定时器: ' . date('Y-m-d H:i:s') . PHP_EOL;
//任务ID
$taskId = $list['s_id'];
//定时器ID
$timerId = $list['s_timerId'];
//删除定时器
swoole_timer_clear($timerId);
//删除任务
Task::delTask($taskId);
$data = array('code' => 200, 'msg' => '删除定时器成功', 'data' => null);
$server->send($fd, json_encode($data));
break;
default:
$data = array('code' => 500, 'msg' => '非法请求', 'data' => null);
$server->send($fd, json_encode($data));
break;
}
}
}
示例11: onReceive
public final function onReceive(\swoole_server $serv, $fd, $from_id, $data)
{
$requestInfo = Packet::packDecode($data);
#decode error
if ($requestInfo["code"] != 0) {
$pack["guid"] = $requestInfo["guid"];
$req = Packet::packEncode($requestInfo);
$serv->send($fd, $req);
return true;
} else {
$requestInfo = $requestInfo["data"];
}
#api was not set will fail
if (!is_array($requestInfo["api"]) && count($requestInfo["api"])) {
$pack = Packet::packFormat("param api is empty", 100003);
$pack["guid"] = $requestInfo["guid"];
$pack = Packet::packEncode($pack);
$serv->send($fd, $pack);
return true;
}
$guid = $requestInfo["guid"];
//prepare the task parameter
$task = array("type" => $requestInfo["type"], "guid" => $requestInfo["guid"], "fd" => $fd, "protocol" => "tcp");
//different task type process
switch ($requestInfo["type"]) {
case DoraConst::SW_MODE_WAITRESULT_SINGLE:
$task["api"] = $requestInfo["api"]["one"];
$taskid = $serv->task($task);
//result with task key
$this->taskInfo[$fd][$guid]["taskkey"][$taskid] = "one";
return true;
break;
case DoraConst::SW_MODE_NORESULT_SINGLE:
$task["api"] = $requestInfo["api"]["one"];
$serv->task($task);
//return success deploy
$pack = Packet::packFormat("transfer success.已经成功投递", 100001);
$pack["guid"] = $task["guid"];
$pack = Packet::packEncode($pack);
$serv->send($fd, $pack);
return true;
break;
case DoraConst::SW_MODE_WAITRESULT_MULTI:
foreach ($requestInfo["api"] as $k => $v) {
$task["api"] = $requestInfo["api"][$k];
$taskid = $serv->task($task);
$this->taskInfo[$fd][$guid]["taskkey"][$taskid] = $k;
}
return true;
break;
case DoraConst::SW_MODE_NORESULT_MULTI:
foreach ($requestInfo["api"] as $k => $v) {
$task["api"] = $requestInfo["api"][$k];
$serv->task($task);
}
$pack = Packet::packFormat("transfer success.已经成功投递", 100001);
$pack["guid"] = $task["guid"];
$pack = Packet::packEncode($pack);
$serv->send($fd, $pack);
return true;
break;
case DoraConst::SW_CONTROL_CMD:
switch ($requestInfo["api"]["cmd"]["name"]) {
case "getStat":
$pack = Packet::packFormat("OK", 0, array("server" => $serv->stats()));
$pack["guid"] = $task["guid"];
$pack = Packet::packEncode($pack);
$serv->send($fd, $pack);
return true;
break;
case "reloadTask":
$pack = Packet::packFormat("OK", 0, array("server" => $serv->stats()));
$pack["guid"] = $task["guid"];
$pack = Packet::packEncode($pack);
$serv->send($fd, $pack);
$serv->reload(true);
return true;
break;
default:
$pack = Packet::packFormat("unknow cmd", 100011);
$pack = Packet::packEncode($pack);
$serv->send($fd, $pack);
unset($this->taskInfo[$fd]);
break;
}
break;
case DoraConst::SW_MODE_ASYNCRESULT_SINGLE:
$task["api"] = $requestInfo["api"]["one"];
$taskid = $serv->task($task);
$this->taskInfo[$fd][$guid]["taskkey"][$taskid] = "one";
//return success
$pack = Packet::packFormat("transfer success.已经成功投递", 100001);
$pack["guid"] = $task["guid"];
$pack = Packet::packEncode($pack);
$serv->send($fd, $pack);
return true;
break;
case DoraConst::SW_MODE_ASYNCRESULT_MULTI:
foreach ($requestInfo["api"] as $k => $v) {
$task["api"] = $requestInfo["api"][$k];
//.........这里部分代码省略.........
示例12: my_onReceive
function my_onReceive(swoole_server $serv, $fd, $from_id, $data)
{
my_log("Worker#{$serv->worker_pid} Client[{$fd}@{$from_id}]: received: {$data}");
$cmd = trim($data);
if ($cmd == "reload") {
$serv->reload();
} elseif ($cmd == "task") {
$task_id = $serv->task("task " . $fd);
echo "Dispath AsyncTask: id={$task_id}\n";
} elseif ($cmd == "taskclose") {
$serv->task("close " . $fd);
echo "close the connection in taskworker\n";
} elseif ($cmd == "tasksend") {
$serv->task("send " . $fd);
} elseif ($cmd == "bigtask") {
$serv->task(str_repeat('A', 8192 * 5));
} elseif ($cmd == "taskwait") {
$result = $serv->taskwait("taskwait");
if ($result) {
$serv->send($fd, "taskwaitok");
}
echo "SyncTask: result=" . var_export($result, true) . "\n";
} elseif ($cmd == "taskWaitMulti") {
$result = $serv->taskWaitMulti(array(str_repeat('A', 8192 * 5), str_repeat('B', 8192 * 6), str_repeat('C', 8192 * 8)));
if ($result) {
$resp = "taskWaitMulti ok\n";
foreach ($result as $k => $v) {
$resp .= "result[{$k}] length=" . strlen($v) . "\n";
}
$serv->send($fd, $resp);
} else {
$serv->send($fd, "taskWaitMulti error\n");
}
} elseif ($cmd == "hellotask") {
$serv->task("hellotask");
} elseif ($cmd == "taskcallback") {
$serv->task("taskcallback", -1, function (swoole_server $serv, $task_id, $data) {
echo "Task Callback: ";
var_dump($task_id, $data);
});
} elseif ($cmd == "sendto") {
$serv->sendto("127.0.0.1", 9999, "hello world");
} elseif ($cmd == "close") {
$serv->send($fd, "close connection\n");
$result = $serv->close($fd);
} elseif ($cmd == "info") {
$info = $serv->connection_info(strval($fd), $from_id);
var_dump($info["remote_ip"]);
$serv->send($fd, 'Info: ' . var_export($info, true) . PHP_EOL);
} elseif ($cmd == 'proxy') {
$serv->send(1, "hello world\n");
} elseif ($cmd == 'sleep') {
sleep(10);
} elseif ($cmd == 'foreach') {
foreach ($serv->connections as $fd) {
echo "conn : {$fd}\n";
}
return;
} elseif ($cmd == 'tick') {
$serv->tick(2000, function ($id) {
echo "tick #{$id}\n";
});
} elseif ($cmd == 'addtimer') {
$serv->addtimer(3000);
} elseif ($cmd == "list") {
$start_fd = 0;
echo "broadcast\n";
while (true) {
$conn_list = $serv->connection_list($start_fd, 10);
if (empty($conn_list)) {
echo "iterates finished\n";
break;
}
$start_fd = end($conn_list);
var_dump($conn_list);
}
} elseif ($cmd == "list2") {
foreach ($serv->connections as $con) {
var_dump($serv->connection_info($con));
}
} elseif ($cmd == "stats") {
$serv_stats = $serv->stats();
$serv->send($fd, 'Stats: ' . var_export($serv_stats, true) . "\ncount=" . count($serv->connections) . PHP_EOL);
} elseif ($cmd == "broadcast") {
broadcast($serv, $fd, "hello from {$fd}\n");
} elseif ($cmd == "error") {
hello_no_exists();
} elseif ($cmd == "exit") {
exit("worker php exit.\n");
} elseif ($cmd == 'pause') {
echo "pause receive data. fd={$fd}\n";
$serv->pause($fd);
} elseif (substr($cmd, 0, 6) == "resume") {
$resume_fd = substr($cmd, 7);
$serv->resume($resume_fd);
} elseif (substr($cmd, 0, 5) == "close") {
$close_fd = substr($cmd, 6);
$serv->close($close_fd);
} elseif ($cmd == "shutdown") {
$serv->shutdown();
//.........这里部分代码省略.........
示例13: on_finish
/**
* listen on task finish
*
* @param \swoole_server $serv
* @param $task_id
* @param $data
*/
public function on_finish(\swoole_server $serv, $task_id, $data)
{
echo "Task {$task_id} finish\n";
$serv->reload();
return;
}
示例14: reload
/**
* 得新加载
* @return [type] [description]
*/
public function reload(\swoole_server $serv, $fd = '', $from_id = '', $data = '')
{
$serv->reload();
}