zoukankan      html  css  js  c++  java
  • Swoole从入门到入土(14)——HTTP服务器[协程风格]

    在这之间,我们讨论了异步风格HTTP服务器,它继承自异步风格的TCP服务器,有着异步风格的所有优点,同时如果碰到了大量的IO等待也会存在阻塞的缺点。

    而协程风格的HTTP则很好处理了IO等待的问题。这里要注意完全协程化的 HTTP 服务器实现,CoHttpServer 由于 HTTP 解析性能原因使用 C++ 编写,因此并非由 PHP 编写的 CoServer 的子类。

    1、成员函数

    __construct():构造函数

    SwooleCoroutineHttpServer::__construct(string $host, int $port = 0, bool $ssl = false, bool $reuse_port = false);

    $host:监听的 IP 地址【若是本地 UNIXSocket 则应以形如 unix://tmp/xxx.sock 的格式填写 】

    $port:监听端口,可选0~65535

    $ssl:是否启用 SSL/TLS 隧道加密

    $reuse_port:是否启用端口复用特性,开启后多个服务可以共用一个端口

    handle():注册回调函数以处理参数 $pattern 所指示路径下的 HTTP 请求。

    SwooleCoroutineHttpServer->handle(string $pattern, callable $fn): void

    $pattern:设置 URL 路径【如 /index.html,注意这里不能传入 http://domain】

    $fn:处理函数,用法参考 SwooleHttpServer 中的 OnRequest 回调

    注意:该函数必须在 Server::start 之前设置处理函数

    2、完整示例:

    Co
    un(function () {
        $server = new CoHttpServer("127.0.0.1", 9502, false);
        $server->handle('/', function ($request, $response) {
            $response->end("<h1>Index</h1>");
        });
        $server->handle('/test', function ($request, $response) {
            $response->end("<h1>Test</h1>");
        });
        $server->handle('/stop', function ($request, $response) use ($server) {
            $response->end("<h1>Stop</h1>");
            $server->shutdown();
        });
        $server->start();
    });

    协程风络的HTTP服务器就是这么简单。下一期开始,我们一起进行websocket服务器。

    2020过得好快啊,明天就是11月份了。

    ---------------------------  我是可爱的分割线  ----------------------------

    最后博主借地宣传一下,漳州编程小组招新了,这是一个面向漳州青少年信息学/软件设计的学习小组,有意向的同学点击链接,联系我吧。

  • 相关阅读:
    gimp 语言设置
    gnome 3.4 评测
    linux 添加PATH路径
    永中office2012 linux版 使用初步感受
    Bio per常规用法(1、读取序列)
    blast程序 介绍 简介
    genewise运行过程中遇到的错误及其解决方法
    gnome3 隐藏标题栏
    Bio per常规用法(2、翻译蛋白)
    genewise 编译过程中遇到的 getline冲突
  • 原文地址:https://www.cnblogs.com/ddcoder/p/13824624.html
Copyright © 2011-2022 走看看