Init Repo

This commit is contained in:
root
2019-09-06 23:53:10 +08:00
commit f0ef89dfbb
7905 changed files with 914138 additions and 0 deletions

View File

@ -0,0 +1,11 @@
<?php
$cli = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$cli->on("connect", function(swoole_client $cli) {
assert(false);
});
$cli->on("receive", function(swoole_client $cli, $data) {
assert(false);
});
$cli->on("error", function(swoole_client $cli) { echo "connect timeout\n"; });
$cli->on("close", function(swoole_client $cli) { echo "close\n"; });
$cli->connect("11.11.11.11", 9000, 0.5);

View File

@ -0,0 +1,34 @@
<?php
$start = microtime(true);
$cli = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$cli->on("connect", function(swoole_client $cli) {
assert(false);
});
$cli->on("receive", function(swoole_client $cli, $data) {
assert(false);
});
$cli->on("error", function(swoole_client $cli) {
echo "error\n";
});
$cli->on("close", function(swoole_client $cli) {
echo "close\n";
});
function refcount($var)
{
ob_start();
debug_zval_dump($var);
preg_match('/refcount\((?<refcount>\d)\)/', ob_get_clean(), $matches);
return intval($matches["refcount"]) - 3;
}
@$cli->connect("11.11.11.11", 9000, 0.1);
@$cli->connect("11.11.11.11", 9000, 0.1);
@$cli->connect("11.11.11.11", 9000, 0.1);
@$cli->connect("11.11.11.11", 9000, 0.1);
@$cli->connect("11.11.11.11", 9000, 0.1);
Swoole\Event::wait();
// xdebug_debug_zval("cli");
// echo refcount($cli); // php7无效

View File

@ -0,0 +1,48 @@
<?php
require_once __DIR__ . "/../../../include/bootstrap.php";
// suicide(5000);
$cli = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
/** @noinspection PhpVoidFunctionResultUsedInspection */
assert($cli->set([
'open_length_check' => 1,
'package_length_type' => 'N',
'package_length_offset' => 0,
'package_body_offset' => 0,
]));
$cli->on("connect", function(swoole_client $cli) {
swoole_timer_clear($cli->timeo_id);
assert($cli->isConnected() === true);
});
$cli->on("receive", function(swoole_client $cli, $data){
$cli->close();
assert($cli->isConnected() === false);
});
$cli->on("error", function(swoole_client $cli) {
swoole_timer_clear($cli->timeo_id);
echo "ERROR";
});
$cli->on("close", function(swoole_client $cli) {
swoole_timer_clear($cli->timeo_id);
echo "CLOSE";
});
$cli->connect(TCP_SERVER_HOST, TCP_SERVER_PORT);
$cli->timeo_id = swoole_timer_after(1000, function() use($cli) {
debug_log("connect timeout");
$cli->close();
assert($cli->isConnected() === false);
});

View File

@ -0,0 +1,63 @@
<?php
require_once __DIR__ . "/../../../include/bootstrap.php";
suicide(5000);
$cli = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
/** @noinspection PhpVoidFunctionResultUsedInspection */
assert($cli->set([
// TODO test
// 'open_eof_check' => true,
// 'package_eof' => "\r\n\r\n",
// TODO
// "socket_buffer_size" => 1,
]));
$cli->on("connect", function(swoole_client $cli) {
swoole_timer_clear($cli->timeo_id);
// TODO getSocket BUG
// assert(is_resource($cli->getSocket()));
/*
$cli->getSocket();
// Warning: swoole_client_async::getSocket(): unable to obtain socket family Error: Bad file descriptor[9].
$cli->getSocket();
*/
assert($cli->isConnected() === true);
$cli->send(RandStr::gen(1024, RandStr::ALL));
// $cli->sendfile(__DIR__.'/test.txt');
});
$cli->on("receive", function(swoole_client $cli, $data){
$recv_len = strlen($data);
debug_log("receive: len $recv_len");
$cli->send(RandStr::gen(1024, RandStr::ALL));
$cli->close();
assert($cli->isConnected() === false);
});
$cli->on("error", function(swoole_client $cli) {
swoole_timer_clear($cli->timeo_id);
debug_log("error");
});
$cli->on("close", function(swoole_client $cli) {
swoole_timer_clear($cli->timeo_id);
debug_log("close");
});
$cli->connect(TCP_SERVER_HOST, TCP_SERVER_PORT);
$cli->timeo_id = swoole_timer_after(1000, function() use($cli) {
debug_log("connect timeout");
$cli->close();
assert($cli->isConnected() === false);
});

View File

@ -0,0 +1,48 @@
<?php
// swoole socket 复用BUG
function onClose(swoole_client $cli) {
$fd = \EventUtil::getSocketFd($cli->getSocket());
echo "close fd <$fd>\n";
}
function onError(swoole_client $cli) {
$fd = \EventUtil::getSocketFd($cli->getSocket());
echo "error fd <$fd>\n";
}
$host = "127.0.0.1";
$port = 8050;
$cli = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$cli->on("receive", function(swoole_client $cli, $data){ });
$cli->on("error", "onError");
$cli->on("close", "onClose");
$cli->on("connect", function(swoole_client $cli) use($host, $port) {
$fd = \EventUtil::getSocketFd($cli->getSocket());
echo "connected fd <$fd>\n";
$cli->close(); // close(fd)
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
$newCli = new \swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$newCli->on("receive", function(swoole_client $cli, $data){ });
$newCli->on("error", "onError");
$newCli->on("close", "onClose");
$newCli->on("connect", function(swoole_client $newCli) use($cli) {
$fd = \EventUtil::getSocketFd($cli->getSocket());
echo "connected fd <$fd>, reuse!!!\n";
echo "free socket\n";
$cli->__destruct();
echo "send\n";
$r = $newCli->send("HELLO");
});
$newCli->connect($host, $port);
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
});
$cli->connect($host, $port);