i...">
美文网首页
基础知识

基础知识

作者: Martain | 来源:发表于2018-07-21 23:29 被阅读8次

    创建TCP服务器

    $host = "0.0.0.0";
    $port = 2100
    $server = new swoole_server($host,$port)
    
    $server->on("connect",function($ser,$fd){
    
    })
    
    $server->on("receive",function($ser,$fd,$from_id,$data){
    
    })
    
    $server->on("close",function($ser,$fd){
    
    })
    
    $server->start();
    
    

    UDP服务器

    $server = new swoole_server($host,$port,SWOOLE_PROCESS,SWOOLE_SOCK_UDP);
    $server->on('Packet',function($ser,$data,$clienInfo){
        $ser->sendTo(clienInfo["address"],$clienInfo["port"],"server is receive");
        var_dump($clienInfo);
    })
    $server->start()
    

    $clienInfo:
    array(4) {
    ["server_socket"]=>
    int(3)
    ["server_port"]=>
    int(9502)
    ["address"]=>
    string(13) "112.11.128.69"
    ["port"]=>
    int(64622)
    }

    Web服务器

    <?php
            $http = new swoole_http_server("0.0.0.0",9501);
            $http->on('request',function($request,$response){
                    var_dump($request);
                    $response->header("Content-Type","text/html;chartset=utf-8");
                    $response->end("<h1>Hello World</h1>");
            });
            $http->start();
    
    object(Swoole\Http\Request)#7 (9) {
      ["fd"]=>
      int(1)
      ["header"]=>
      array(8) {
        ["host"]=>
        string(20) "118.126.104.***:9501"
        ["connection"]=>
        string(10) "keep-alive"
        ["user-agent"]=>
        string(108) "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3472.3 Safari/537.36"
        ["dnt"]=>
        string(1) "1"
        ["accept"]=>
        string(39) "image/webp,image/apng,image/*,*/*;q=0.8"
        ["referer"]=>
        string(28) "http://118.126.104.***:9501/"
        ["accept-encoding"]=>
        string(13) "gzip, deflate"
        ["accept-language"]=>
        string(42) "zh-CN,zh;q=0.9,en;q=0.8,de;q=0.7,und;q=0.6"
      }
      ["server"]=>
      array(11) {
        ["request_method"]=>
        string(3) "GET"
        ["request_uri"]=>
        string(12) "/favicon.ico"
        ["path_info"]=>
        string(12) "/favicon.ico"
        ["request_time"]=>
        int(1532221596)
        ["request_time_float"]=>
        float(1532221597.1269)
        ["server_port"]=>
        int(9501)
        ["remote_port"]=>
        int(26711)
        ["remote_addr"]=>
        string(13) "112.11.128.69"
        ["master_time"]=>
        int(1532221596)
        ["server_protocol"]=>
        string(8) "HTTP/1.1"
        ["server_software"]=>
        string(18) "swoole-http-server"
      }
      ["request"]=>
      NULL
      ["cookie"]=>
      NULL
      ["get"]=>
      NULL
      ["files"]=>
      NULL
      ["post"]=>
      NULL
      ["tmpfiles"]=>
      NULL
    }
    

    WebSocket服务器

    php

    <?php
            $ws = new swoole_websocket_server("0.0.0.0",9502);
            $ws->on("open",function($ws,$request){
                    var_dump($request);
                    $ws->push($request->fd,"Hello welcome to open me");
            });
    
            $ws->on("message",function($ws,$frame){
                    var_dump($frame);
                    echo "Message:{$frame->data}\n";
                    $ws->push($frame->fd,"get user message");
            });
            $ws->on('close',function($ws,$fd){
                    echo "cliend-{$fd} is close";
            });
            $ws->start();
    

    js

        <script>
            var wsServer = 'ws:/118.126.104.161:9502';
            var websocket = new WebSocket(wsServer)
            websocket.onopen = function (evt) {
                console.log("connect to server");
            }    
            websocket.onclose=function (evt) {
                console.log("disconnected");
            }
            websocket.onmessage = function (evt) {
                console.log("get message :"+evt.data);
            }
            websocket.onerror = function (evt,e) {
                console.log("error "+evt.data);  
            }
        </script>
    

    相关文章

      网友评论

          本文标题:基础知识

          本文链接:https://www.haomeiwen.com/subject/hnbkmftx.html