旗下导航:搜·么
当前位置:网站首页 > PHP框架 > Swoole > 正文

swoole种种服务器区分【swoole】,swoole

作者:搜搜PHP网发布时间:2019-12-16分类:Swoole浏览:59


导读:server.php(引荐进修:swoole视频教程)//竖立Server对象,监听127.0.0.1:9501端口$serv=newSwoole\Ser...

server.php (引荐进修: swoole视频教程)

//竖立Server对象,监听 127.0.0.1:9501端口
$serv = new Swoole\Server("127.0.0.1", 9501); 
//监听衔接进入事宜
$serv->on('Connect', function ($serv, $fd) {  
    echo "Client: Connect.\n";
});
//监听数据吸收事宜
$serv->on('Receive', function ($serv, $fd, $from_id, $data) {
    $serv->send($fd, "Server: ".$data);
});
//监听衔接封闭事宜
$serv->on('Close', function ($serv, $fd) {
    echo "Client: Close.\n";
});
//启动服务器
$serv->start();

这里就竖立了一个TCP服务器,监听本机9501端口。它的逻辑很简单,当客户端Socket经由过程收集发送一个 hello 字符串时,服务器会复兴一个 Server: hello 字符串。

Server是异步服务器,所以是经由过程监听事宜的体式格局来编写顺序的。当对应的事宜发作时底层会主动回调指定的函数。如当有新的TCP衔接进入时会实行onConnect事宜回调,当某个衔接向服务器发送数据时会回调onReceive函数。

UDP服务器与TCP服务器差别,UDP没有衔接的观点。启动Server后,客户端无需Connect,直接能够向Server监听的9502端口发送数据包。对应的事宜为onPacket。

$clientInfo是客户端的相干信息,是一个数组,有客户端的IP和端口等内容挪用 $server->sendto 要领向客户端发送数据

Http服务器只需要关注要求相应即可,所以只需要监听一个onRequest事宜。当有新的Http要求进入就会触发此事宜。事宜回调函数有2个参数,一个是$request对象,包含了要求的相干信息,如GET/POST要求的数据。

别的一个是response对象,对request的相应能够经由过程操纵response对象来完成。$response->end()要领示意输出一段HTML内容,并完毕此要求。

0.0.0.0 示意监听一切IP地点,一台服务器大概同时有多个IP,如127.0.0.1当地回环IP、192.168.1.100局域网IP、210.127.20.2 外网IP,这里也能够零丁指定监听一个IP9501 监听的端口,假如被占用顺序会抛出致命毛病,中断实行。

WebSocket服务器是竖立在Http服务器之上的长衔接服务器,客户端起首会发送一个Http的要求与服务器举行握手。

握手胜利后会触发onOpen事宜,示意衔接已停当,onOpen函数中能够获得$request对象,包含了Http握手的相干信息,如GET参数、Cookie、Http头信息等。

竖立衔接后客户端与服务器端就能够双向通信了。

客户端向服务器端发送信息时,服务器端触发onMessage事宜回调服务器端能够挪用$server->push()向某个客户端(运用$fd标识符)发送音讯服务器端能够设置onHandShake事宜回调来手工处置惩罚WebSocket握手。

swoole_http_server是swoole_server的子类,内置了Http的支撑swoole_websocket_server是swoole_http_server的子类, 内置了WebSocket的支撑

以上就是swoole种种服务器区分的细致内容,更多请关注ki4网别的相干文章!

标签:swoole