源码时代前端干货分享|swoole开启后无法访问问题
Posted IT-source
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码时代前端干货分享|swoole开启后无法访问问题相关的知识,希望对你有一定的参考价值。
首先说一下环境,由于swoole只能在linux环境中使用,开发者通常使用的windows系统,所以我的 swoole是安装在 Cygwin环境中的。Cygwin可以在windows系统中运行,提供一个类似linux命令行的环境。同时,也虚拟机不同,Cygwin可以直接使用系统资源(比如:使用端口),swoole开启的服务器应该是可以直接使用浏览器访问的。
然后说一下问题,根据官方网站的swoole案例写了以后,打死都访问不了。浏览器一直在pending等待服务器响应。
复制swoole官方网站的案例:
<?php
$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();
运行服务器:
浏览器访问:
问题出现了,一直等待,直到永远!!!
在百度、Google、 sogou.com 、 so.com 各大搜索引擎折腾了一天。让人崩溃的是 Cygwin重装过3次,关闭了杀毒软件、防火墙,仔细查阅了swoole的各种文档、各种文章,依然是一直等待。更让人崩溃的是,终于在swoole安装包中发现了一个 examples目录,下面有一个 http目录,里面有一个 server.php 文件。
复制过来运行一下,居然可以使用了,不再是pending等待了。 仔细一看,就多了一个参数:
估计是官网上的代码与最新下载的代码版本不同,或者 Cygwin与linux中pecl安装的swoole默认环境不同,所以必须写出第3个参数 SWOOLE_BASE。
于是,问题就这么解决了。
最后整理一下demo的代码如下:
<?php
$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();
效果:
以上是关于源码时代前端干货分享|swoole开启后无法访问问题的主要内容,如果未能解决你的问题,请参考以下文章
源码时代前端干货分享| JavaScript编程优化,超强入门必备技能!