首先说一下环境,由于swoole只能在linux环境中使用,开发者通常使用的windows系统,所以我的 swoole是安装在 Cygwin环境中的。Cygwin可以在windows系统中运行,提供一个类似linux命令行的环境。同时,也虚拟机不同,Cygwin可以直接使用系统资源(比如:使用端口),swoole开启的服务器应该是可以直接使用浏览器访问的。
然后说一下问题,根据官方网站的swoole案例写了以后,打死都访问不了。浏览器一直在pending等待服务器响应。
复制swoole官方网站的案例:
文章图片
$http = new swoole_http_server("127.0.0.1", 9501);
$http->on("start", function ($server) {
echo "Swoole http server is started at http://127.0.0.1:9501\n";
});
$http->on("request", function ($request, $response) {
$response->header("Content-Type", "text/plain");
$response->end("Hello World\n");
});
$http->start();
运行服务器:
文章图片
浏览器访问:
文章图片
问题出现了,一直等待,直到永远!!!
【源码时代前端干货分享|swoole开启后无法访问问题】在百度、Google、 sogou.com 、 so.com 各大搜索引擎折腾了一天。让人崩溃的是 Cygwin重装过3次,关闭了杀毒软件、防火墙,仔细查阅了swoole的各种文档、各种文章,依然是一直等待。更让人崩溃的是,终于在swoole安装包中发现了一个 examples目录,下面有一个 http目录,里面有一个 server.php 文件。
复制过来运行一下,居然可以使用了,不再是pending等待了。 仔细一看,就多了一个参数:
文章图片
估计是官网上的代码与最新下载的代码版本不同,或者 Cygwin与linux中pecl安装的swoole默认环境不同,所以必须写出第3个参数 SWOOLE_BASE。
于是,问题就这么解决了。
最后整理一下demo的代码如下:
$http = new swoole_http_server("127.0.0.1", 9501, SWOOLE_BASE);
$http->on("request", function ($request, $response) {
$response->header("Content-Type", "text/html");
$response->end("Hello World\n");
});
$http->start();
效果:
文章图片
推荐阅读
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- 接口|axios接口报错-参数类型错误解决
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export
- vue|Vue面试常用详细总结
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- css|我用css精灵图拼接了自己的英文名字,不会还有人不知道精灵图技术吧()
- css|css三角的做法及其案例