• Swoole HTTPServer



    title: Swoole HTTPServer
    date: 2020-01-12 10:39:50
    categories:

    • Swoole
      tags:
    • Swoole HTTPServer

    HTTPServer

    HTTPServer对HTTP协议的支持并不完整,建议作为应用服务器。并且在前端增加Nginx作为代理

    <?php
    // 监听9501端口,创建http服务
    $http = new SwooleHttpServer('127.0.0.1',9501);
    
    //  接收到请求,设置返回数据
    $http->on('request',function ($request,$response){
       $response->end('<h1>Hello Swoole</h1>'.PHP_EOL);
    });
    
    // 开启服务
    $http->start();
    

    测试验证

    #执行shell脚本
    curl localhost:9501
    ############返回结果################
    #<h1>Hello Swoole</h1>
    ###################################
    

    性能测试

    ab -c 200 -n 2000000 -k http://192.168.255.109:9501/
    This is ApacheBench, Version 2.3 <$Revision: 1748469 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/
    
    Benchmarking 192.168.255.109 (be patient)
    Completed 200000 requests
    Completed 400000 requests
    Completed 600000 requests
    Completed 800000 requests
    Completed 1000000 requests
    Completed 1200000 requests
    Completed 1400000 requests
    Completed 1600000 requests
    Completed 1800000 requests
    Completed 2000000 requests
    Finished 2000000 requests
    
    
    Server Software:        swoole-http-server
    Server Hostname:        192.168.255.109
    Server Port:            9501
    
    Document Path:          /
    Document Length:        22 bytes
    
    Concurrency Level:      200
    Time taken for tests:   197.370 seconds
    Complete requests:      2000000
    Failed requests:        0
    Keep-Alive requests:    2000000
    Total transferred:      350000000 bytes
    HTML transferred:       44000000 bytes
    Requests per second:    10133.27 [#/sec] (mean)
    Time per request:       19.737 [ms] (mean)
    Time per request:       0.099 [ms] (mean, across all concurrent requests)
    Transfer rate:          1731.76 [Kbytes/sec] received
    
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:        0    0   0.0      0       2
    Processing:     3   20   7.6     18     121
    Waiting:        3   20   7.6     18     121
    Total:          3   20   7.6     18     121
    
    Percentage of the requests served within a certain time (ms)
      50%     18
      66%     21
      75%     22
      80%     23
      90%     25
      95%     28
      98%     50
      99%     57
     100%    121 (longest request)
    

    HTTPServer设置Cookie

    <?php
    // 监听9501端口,创建http服务
    $http = new SwooleHttpServer('0.0.0.0',9501);
    
    //  接收到请求,设置返回数据
    $http->on('request',function ($request,$response){
    //    设置cookie
        $response->cookie('php','phpcookie',$expire=180,$path="/");
        $response->end("请求参数:".json_encode($request->get));
    });
    
    // 开启服务
    $http->start();
    

    验证Cookie

    curl -v  http://192.168.255.109:9501/?m=1&c=2 
    [3] 8612
    [2]   Done                    curl -v http://192.168.255.109:9501/?m=1
    [work@p109 client]$ * About to connect() to 192.168.255.109 port 9501 (#0)
    *   Trying 192.168.255.109...
    * Connected to 192.168.255.109 (192.168.255.109) port 9501 (#0)
    > GET /?m=1 HTTP/1.1
    > User-Agent: curl/7.29.0
    > Host: 192.168.255.109:9501
    > Accept: */*
    > 
    < HTTP/1.1 200 OK
    < Server: swoole-http-server
    < Connection: keep-alive
    < Content-Type: text/html
    < Date: Sun, 12 Jan 2020 11:20:29 GMT
    < Content-Length: 24
    < Set-Cookie: php=phpcookie; expires=Thu, 01-Jan-1970 00:03:00 GMT; path=/
    < 
    * Connection #0 to host 192.168.255.109 left intact
    请求参数:{"m":"1"}
    
    
  • 相关阅读:
    线程&进程
    C#入门基础
    .Net GC垃圾收集机制(下)
    .Net GC垃圾收集机制(上)
    GAC的理解及其作用
    C# DES加密,KEY和IV不同设置的写法
    常见加密算法简析
    密码学
    数字签名是什么?(数字证书)
    加密算法和MD5等散列算法的区别
  • 原文地址:https://www.cnblogs.com/anyux/p/12202064.html
Copyright © 2020-2023  润新知