基础知识

2018-07-21  本文已影响8人  Martain

创建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>
上一篇下一篇

猜你喜欢

热点阅读