当前位置: 首页 > 后端技术 > PHP

初识swoole【上篇】

时间:2023-03-29 18:41:40 PHP

前言:一切为了生存。如果有收获,请加个小星星。PHP异步网络通信引擎使PHP开发者能够编写高性能的异步并发TCP、UDP、UnixSocket、HTTP、WebSocket服务。Swoole可广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用PHP+Swoole作为网络通信框架,可以大大提高企业IT研发团队的工作效率,更加专注于开发创新产品。二、安装1.peclpecl安装swoole2。源码安装curl-Ohttps://pecl.php.net/get/swoole-4.2.5.tgztar-zxvfswoole-4.2.5.tgzcdswoole-4.2.5.tgzphpize。/configuremake&&makeinstall#在php.ini中添加php--iniextension=swoole.so3.基础入门注:示例代码均引入“symfony/var-dumper”包进行美化和打印。Swoole的大部分功能只能Forcli命令行环境1,TCPserveron("connect",function(swoole_server$server,$fd){dump("{$fd}connection");$server->send($fd,"欢迎{$fd}大山驴\n");});//接收回调$server->on("receive",function(swoole_server$server,$fd,$from_id,$data){$server->send($fd,"Serverreply:{$data}\n");foreach($server->connectionsas$connection){if($connection!=$fd){$server->send($connection,"{$fd}says{$data}");}}});//close$server->on("close",function(swoole_server$server,$fd){dump("{$fd}close");foreach($server->connectionsas$connection){if($connection!=$fd){$server->send($connection,"{$fd}断开连接");}}});//start$server->start();phptcp_server.phptelnet127.0.0.195012、UDP服务器//newon("数据包",function(swoole_server$server,$data,$clientInfo){$server->sendto($clientInfo['地址'],$clientInfo['端口'],"服务器回复:{$data}");dump($clientInfo);});//start$server->start();phpudp_server.phpnetcat-u127.0.0.195023、Web服务器on("request",function(\Swoole\Http\Request$request,\Swoole\Http\Response$response){dump($request->get,$request->post);$response->header("Content-Type","text/html;charset=utf-8");$response->end("

你好swoole.#".mt_rand(1000,9999)."

\n");});//开始$http->start();phpweb_server.phpcurl-XGET"127.0.0.1:9503?id=1&name=aa&age=26"curl-XPOST"127.0.0.1:9503?id=1&name=aa&age=26"-d"love=like"4.WebSocketserverserveron("open",function(Swoole\WebSocket\Server$ws,\Swoole\Http\Request$request){dump($request->fd,$request->get,$request->server);$ws->push($request->fd,"你是一头大山驴\n");});//message$ws->on("message",function(\Swoole\WebSocket\Server$ws,$frame){dump("message:{$frame->data}\n");$ws->push($frame->fd,"Serverreply:{$frame->data}\n");});//close$ws->on("close",function(Swoole\WebSocket\Server$ws,$fd){dump("{$fd}close");});//开始$ws->start();客户端让ws=newWebSocket("ws://127.0.0.1:9504");ws.onopen=function(ws){console.log("connecttoserver");};ws.onclose=function(ws){console.log("disconnect");};ws.onmessage=function(ws){console.log('从服务器收到消息:'+ws.data);};ws.onerror=function(ws,event){console.log('Error:'+ws.data);};5.Timer