You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
81
vendor/swoole/tests/swoole_http_client/websocket.phpt
vendored
Executable file
81
vendor/swoole/tests/swoole_http_client/websocket.phpt
vendored
Executable file
@ -0,0 +1,81 @@
|
||||
--TEST--
|
||||
swoole_http_client: websocket client send 128 messages
|
||||
--SKIPIF--
|
||||
<?php require __DIR__ . '/../include/skipif.inc'; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
require_once __DIR__ . '/../include/bootstrap.php';
|
||||
require_once __DIR__ . '/../include/swoole.inc';
|
||||
const N = 128;
|
||||
$pm = new ProcessManager;
|
||||
$pm->parentFunc = function ($pid)
|
||||
{
|
||||
$cli = new swoole_http_client('127.0.0.1', 9501);
|
||||
$cli->count = 0;
|
||||
$cli->on('close', function ($cli)
|
||||
{
|
||||
echo "close\n";
|
||||
});
|
||||
$cli->on('error', function ($cli)
|
||||
{
|
||||
echo "error\n";
|
||||
});
|
||||
$cli->on('Message', function ($cli, $frame)
|
||||
{
|
||||
$cli->count++;
|
||||
if ($cli->count == N)
|
||||
{
|
||||
echo "OK\n";
|
||||
$cli->close();
|
||||
}
|
||||
});
|
||||
$cli->upgrade('/websocket', function ($cli)
|
||||
{
|
||||
for ($i = 0; $i < N; $i++)
|
||||
{
|
||||
$cli->push(str_repeat('A', rand(8192, 65536)));
|
||||
}
|
||||
});
|
||||
swoole_event::wait();
|
||||
swoole_process::kill($pid);
|
||||
};
|
||||
|
||||
$pm->childFunc = function () use ($pm)
|
||||
{
|
||||
$serv = new swoole_websocket_server("127.0.0.1", 9501);
|
||||
$serv->set(['log_file' => '/dev/null']);
|
||||
$serv->count = 0;
|
||||
$serv->on('Open', function ($swoole_server, $req)
|
||||
{
|
||||
});
|
||||
$serv->on("WorkerStart", function (\swoole_server $serv)
|
||||
{
|
||||
/**
|
||||
* @var $pm ProcessManager
|
||||
*/
|
||||
global $pm;
|
||||
$pm->wakeup();
|
||||
});
|
||||
$serv->on('Message', function ($serv, $frame)
|
||||
{
|
||||
$serv->count++;
|
||||
if ($serv->count == N)
|
||||
{
|
||||
for ($i = 0; $i < N; $i++)
|
||||
{
|
||||
$serv->push($frame->fd, str_repeat('B', rand(8192, 65536)));
|
||||
}
|
||||
}
|
||||
});
|
||||
$serv->on('Close', function ($swoole_server, $fd)
|
||||
{
|
||||
});
|
||||
$serv->start();
|
||||
};
|
||||
|
||||
$pm->childFirst();
|
||||
$pm->run();
|
||||
?>
|
||||
--EXPECT--
|
||||
OK
|
||||
close
|
Reference in New Issue
Block a user