php swoole 并发多少?

php swoole 并发多少


森林海
浏览 1484回答 1
1回答

慕村225694

HttpServer$serv = new Swoole\Http\Server("127.0.0.1", 9502);$serv->on('Request', function($request, $response) {var_dump($request->get);var_dump($request->post);var_dump($request->cookie);var_dump($request->files);var_dump($request->header);var_dump($request->server);$response->cookie("User", "Swoole");$response->header("X-Server", "Swoole");$response->end("<h1>Hello Swoole!</h1>");});$serv->start();WebSocket Server$serv = new Swoole\Websocket\Server("127.0.0.1", 9502);$serv->on('Open', function($server, $req) {echo "connection open: ".$req->fd;});$serv->on('Message', function($server, $frame) {echo "message: ".$frame->data;$server->push($frame->fd, json_encode(["hello", "world"]));});$serv->on('Close', function($server, $fd) {echo "connection close: ".$fd;});$serv->start();TCP Server$serv = new Swoole\Server("127.0.0.1", 9501);$serv->set(array('worker_num' => 8, //工作进程数量'daemonize' => true, //是否作为守护进程));$serv->on('connect', function ($serv, $fd){echo "Client:Connect.\n";});$serv->on('receive', function ($serv, $fd, $from_id, $data) {$serv->send($fd, 'Swoole: '.$data);$serv->close($fd);});$serv->on('close', function ($serv, $fd) {echo "Client: Close.\n";});$serv->start();TCP Client$client = new Swoole\Client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);//设置事件回调函数$client->on("connect", function($cli) {$cli->send("hello world\n");});$client->on("receive", function($cli, $data){echo "Received: ".$data."\n";});$client->on("error", function($cli){echo "Connect failed\n";});$client->on("close", function($cli){echo "Connection close\n";});//发起网络连接$client->connect('127.0.0.1', 9501, 0.5);异步MySQL$db = new Swoole\MySQL;$server = array('host' => '127.0.0.1','user' => 'test','password' => 'test','database' => 'test',);$db->connect($server, function ($db, $result) {$db->query("show tables", function (Swoole\MySQL $db, $result) {if ($result === false) {var_dump($db->error, $db->errno);} elseif ($result === true) {var_dump($db->affected_rows, $db->insert_id);} else {var_dump($result);$db->close();}});});异步Redis/异步Http客户端$redis = new Swoole\Redis;$redis->connect('127.0.0.1', 6379, function ($redis, $result) {$redis->set('test_key', 'value', function ($redis, $result) {$redis->get('test_key', function ($redis, $result) {var_dump($result);});});});$cli = new Swoole\Http\Client('127.0.0.1', 80);$cli->setHeaders(array('User-Agent' => 'swoole-http-client'));$cli->setCookies(array('test' => 'value'));$cli->post('/dump.php', array("test" => 'abc'), function ($cli) {var_dump($cli->body);$cli->get('/index.php', function ($cli) {var_dump($cli->cookies);var_dump($cli->headers);});});Async-IO$fp = stream_socket_client("tcp://127.0.0.1:80", $code, $msg, 3);$http_request = "GET /index.html HTTP/1.1\r\n\r\n";fwrite($fp, $http_request);Swoole\Event::add($fp, function($fp){echo fread($fp, 8192);swoole_event_del($fp);fclose($fp);});Swoole\Timer::after(2000, function() {echo "2000ms timeout\n";});Swoole\Timer::tick(1000, function() {echo "1000ms interval\n";});异步任务$serv = new Swoole\Server("127.0.0.1", 9502);$serv->set(array('task_worker_num' => 4));$serv->on('Receive', function($serv, $fd, $from_id, $data) {$task_id = $serv->task("Async");echo "Dispath AsyncTask: id=$task_id\n";});$serv->on('Task', function ($serv, $task_id, $from_id, $data) {echo "New AsyncTask[id=$task_id]".PHP_EOL;$serv->finish("$data -> OK");});$serv->on('Finish', function ($serv, $task_id, $data) {echo "AsyncTask[$task_id] Finish: $data".PHP_EOL;});$serv->start();
打开App,查看更多内容
随时随地看视频慕课网APP