php网络编程swoole websocket
服务端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php use Swoole\WebSocket\Server; // 创建 HTTP 服务器 $server = new Server( '127.0.0.1' , 8888, SWOOLE_PROCESS, SWOOLE_SOCK_TCP); $server ->on( 'start' , function ( $server ) { //print_r($server); echo "Swoole websocket server is started at ws://127.0.0.1:8888\n" ; }); // 设置服务器配置 $server ->set([ 'worker_num' => 4, 'log_file' => './logfile.log' , ]); // 监听 WebSocket 连接事件 $server ->on( 'open' , function (Server $server , $req ) { echo "Connection open: {$req->fd}\n" ; }); // 监听 WebSocket 消息事件 $server ->on( 'message' , function (Server $server , $frame ) { echo "接收到客户端数据:{$frame->data}\n" ; $server ->push( $frame ->fd, "我收到你的消息了" ); }); // 监听 WebSocket 关闭事件 $server ->on( 'close' , function (Server $server , $fd ) { echo "Connection close: {$fd}\n" ; }); // 启动服务器 $server ->start(); |
客户端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php use Swoole\Coroutine; use Swoole\Coroutine\Http\Client; use function Swoole\Coroutine\run; run( function () { $client = new Client( '127.0.0.1' , 8888); $ret = $client ->upgrade( '/' ); if ( $ret ) { $client ->push( '测试消息,php版本的协程客户端' ); echo "收到服务端回复:" . $client ->recv(). "\n" ; Coroutine::sleep(0.1); } }); |
输出:
本文来自博客园,作者:河北大学-徐小波,转载请注明原文链接:https://www.cnblogs.com/xuxiaobo/p/18624989

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步