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

Swoole学习笔记(三)创建服务器(下)

时间:2023-03-29 14:50:51 PHP

目录初识Swoole创建服务器(上)创建服务器(下)异步任务task持续更新中。..1、创建HttpServer服务器HttpServer是基于swoole_server的,所以swoole_server下的所有方法都可以使用带httpsevrer的HttpServer,只能由客户端调用1、测试on('request',function($request,$response){echo'nihao';$response->end('helloswoole');});$http->开始();php执行它,打开浏览器服务器这里我们发现一个奇怪的现象1.echo(var_dump,print_rd)的内容显示在服务器上2.浏览器的内容只能通过end(content)方法调用一次。如果需要分多次向客户端发送数据,请使用write方法展开:嘿嘿,这和我们平时访问的XXX.com很像:80如果我们要访问下面的文件怎么办?有没有想到我们之前tcp和udp都用到的一个函数集,我把这个函数理解为配置,那我们就配置$http->set(['enable_static_handler'=>true,'document_root'=>"/www/wwwroot/server",//这里设置根目录根据自己的路径写]);是不是很像配置虚拟地址?让我们尝试访问服务器目录中的test.html!一般来说,带有document_root的http_server进程是这样??设置的:1.首先我们会根据url去到相对于document_root的路径下的文件,然后配置域名访问该文件原理差不多就是同样2.如果这个文件不存在,那么我们的http_server会执行$http->on('request'function($request,$response));并做出相应响应二、创建WebSocket服务器1、特点:(1)HTTP协议有一个缺陷:通信只能由客户端发起,服务器不能主动向客户端推送信息。WebSocket最大的特点就是服务端可以主动向客户端推送信息,客户端也可以主动向服务端发送信息。是真正的双向平等对话,属于服务器推送技术的一种。(2)Web_Socket继承了http_server,因为web_server的全双工特性,所以很适合聊天室。2.说到这里,我们来做个简单的测试吧!(1)我们先写一个web_server.php文件$server=newswoole_websocket_server("0.0.0.0",8811);//Web_Socket继承http_server,所以也可以有同样的set方法//包括$server->on('request',function($request,$response){}也是可用的$server->set(['enable_static_handler'=>true,'document_root'=>"/www/wwwroot/server",]);//监听websocket连接打开事件$server->on('open','onOpen');functiononOpen($server,$request){echo"fdis:".$request->fd."isonline\n";}//监听ws消息事件$server->on('message',function($server,$frame){var_dump($frame);$msg='fdis'.$frame->fd.'says:'.$frame->data;//$frame->data为客户端传过来的信息$server->push($frame->fd,$msg);});$server->on('close',function($server,$fd){echo"client{$fd}closed\n";});$server->start();(2)然后写一个客户端文件你可以根据这个是写一个基于web_socket的聊天室。学习tcp、udp、websocket和http的服务是很有趣的。我们可以做一个总结:如果这篇文章对你有用,可以点赞或者收藏。这是对作者的褒奖。勉励~文档地址传送门:https://wiki.swoole.com/wiki/...推荐Singwa老师的视频教程:https://coding.imooc.com/clas...附上小弟的网址。.www.entercode.cn推广一波...