本文整理汇总了PHP中swoole_server::sendto方法的典型用法代码示例。如果您正苦于以下问题:PHP swoole_server::sendto方法的具体用法?PHP swoole_server::sendto怎么用?PHP swoole_server::sendto使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类swoole_server
的用法示例。
在下文中一共展示了swoole_server::sendto方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: my_onPacket
function my_onPacket(swoole_server $serv, $data, $addr)
{
// var_dump($addr);
$serv->sendto($addr['address'], $addr['port'], 'Swoole: ' . $data);
}
示例2: 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);
}
示例3: function
<?php
/**
* Created by PhpStorm.
* User: xiangdong
* Date: 16/3/1
* Time: 下午2:16
*/
//创建Server对象,监听 127.0.0.1:9502端口,类型为SWOOLE_SOCK_UDP
$server = new swoole_server("127.0.0.1", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);
//监听数据发送事件
$server->on('Packet', function ($server, $data, $clientInfo) {
$server->sendto($clientInfo['address'], $clientInfo['port'], "Server " . $data);
var_dump($clientInfo);
});
//启动服务器
$server->start();
示例4: 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);
//.........这里部分代码省略.........
示例5: function
<?php
//创建Server对象,监听 127.0.0.1:9502端口,类型为SWOOLE_SOCK_UDP
$serv = new swoole_server('127.0.0.1', 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP);
$serv->set(['worker_num' => 1]);
//监听数据发送事件
//$serv->on('Packet', function (swoole_server $serv, $fd, $data, $clientInfo) {
$serv->on('Packet', function (swoole_server $serv, $data, $addr) {
$serv->sendto($addr['address'], $addr['port'], "Swoole UDP Server: {$data}");
var_dump($addr, strlen($data));
});
//启动服务器
$serv->start();
?>
示例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 == "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();
//.........这里部分代码省略.........