热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于swoole扩展,建立http服务器

一、服务端代码:classHttp_server{public$host127.0.0.1;public$port9911;public$http;publicf

一、服务端代码:

class Http_server
{public $host = '127.0.0.1';public $port = 9911;public $http;public function __construct(){$this->http = new swoole_http_server($this->host,$this->port);$this->http->set(['enable_static_handler' => true,//开启静态文件分发'document_root' => '/www/data'//静态文件根目录]);$this->http->on('request',[$this,'onRequest']);$this->http->start();}/*** @FunctionName :onRequest* @CreateTime :2019 2019/1/1 22:15* @Author :Robin* @Descript 监听http请求事件* @param $request mixed 接收的数据* @param $response mixed 返回的数据*/public function onRequest($request,$response){echo '

';var_dump($request->get);$response->end("

httpserver

");}
}$obj = new Http_server();

二、静态文件:






This is Httpserver!




三、效果图:

服务端:
在这里插入图片描述
服务端带参数访问:

在这里插入图片描述
此时服务端打印接收到的参数
在这里插入图片描述
服务端直接访问静态资源:
在这里插入图片描述
对比两次请求返回的html,访问静态资料时,服务端返回的是/www/data/目录下的index.html文件,带参数访问时,服务端返回的是代码中end()方法中指定的字符串。

swoole的指出,swoole的httpserver对Http协议的支持并不完整,建议仅作为应用服务器。并且在前端增加Nginx作为代理。

在上述验证中,我都是访问的本机127.0.0.1,因为在外网测试访问不了(端口已经开放,防火墙也关了),不知道是swoole的httpserver仅支持内网还是阿里云服务器的问题,这点有待后来再验证了。

四、需要注意的问题:

服务端监听的端口一定要开放,否则只能本机访问,还有就是老生常谈的防火墙问题


推荐阅读
  • 本文探讨如何利用Java反射技术来模拟Webwork框架中的URL解析过程。通过这一实践,读者可以更好地理解Webwork及其后续版本Struts2的工作原理,尤其是它们在MVC架构下的角色。 ... [详细]
  • 在Java应用程序开发过程中,FTP协议被广泛用于文件的上传和下载操作。本文通过Jakarta Commons Net库中的FTPClient类,详细介绍如何实现文件的上传和下载功能。 ... [详细]
  • 如何处理MySQL命令行中文乱码问题
    本文详细探讨了MySQL命令行中出现中文乱码的原因及解决方案,通过调整配置文件和执行特定SQL命令来确保字符集正确设置,为用户提供了一个有效的解决路径。 ... [详细]
  • 本文详细介绍了如何正确安装Java EE SDK,并解决在安装过程中可能遇到的问题,特别是关于servlet代码在Apache Tomcat 10中无法运行的情况。 ... [详细]
  • 本文详细介绍了如何在现有的Android Studio项目中集成JNI(Java Native Interface),包括下载必要的NDK和构建工具,配置CMakeLists.txt文件,以及编写和调用JNI函数的具体步骤。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • Java实现文本到图片转换,支持自动换行、字体自定义及图像优化
    本文详细介绍了如何使用Java实现将文本转换为图片的功能,包括自动换行、自定义字体加载、抗锯齿优化以及图片压缩等技术细节。 ... [详细]
  • 详细指南:使用IntelliJ IDEA构建多模块Maven项目
    本文在前两篇文章的基础上,进一步指导读者如何在IntelliJ IDEA中创建和配置多模块Maven项目。通过详细的步骤说明,帮助读者掌握项目模块化管理的方法。 ... [详细]
  • 本文介绍了在Android项目中实现时间轴效果的方法,通过自定义ListView的Item布局和适配器逻辑,实现了动态显示和隐藏时间标签的功能。文中详细描述了布局文件、适配器代码以及时间格式化工具类的具体实现。 ... [详细]
  • 1Authenticator简介1.1层次结构图1.2作用职责是验证用户帐号,是ShiroAPI中身份验证核心的入口点;接口中声明的authenticate方法就是用来实现认证逻辑 ... [详细]
  • 解决vCenter vSphere HA初始化失败的问题
    本文探讨了在集群中遇到的所有vSphere HA主机状态显示‘无法正确安装或配置vSphere HA代理’错误的情况,并详细介绍了排查与解决步骤,包括检查HA初始化错误及安装HA代理的常见故障排除方法。 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • 最近同事提了一个需求过来,他觉得项目对于第三方日志记录的太多了,只想记录一些业务相关的日志减少对于框架日志的显示。具体要求就是对于框架日志只显示warn等级以上的,而业务日志显示info等级以上 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
author-avatar
独行小刀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有