第2节、Swoole的server服务端的简介

8 篇文章 0 订阅
8 篇文章 3 订阅

1、Server服务端

创建一个异步服务器程序,支持TCP、UDP、UnixSocket 3种协议,支持IPv4和IPv6,支持SSL/TLS单向双向证书的隧道加密。使用者无需关注底层实现细节,仅需要设置网络事件的回调函数即可。

请勿在使用Server创建之前调用其他异步IO的API,否则将会创建失败。可以在Server启动后onWorkerStart回调函数中使用。

2、示例

以下基本是固定写法,第一步定义好host和端口等;第二步便是设置选项;接着就是进入connect事件,和接收数据的事件,最后的还有服务端的关闭事件;最后的启动服务器一定不要忘了。

	//创建Server对象,监听 127.0.0.1:9501端口
	$serv = new swoole_server("127.0.0.1", 9501); 
	
	//配置选项
	$serv->set(array(
	    'worker_num' => 4,    //worker process num
	    'backlog' => 128,   //listen backlog
	    'max_request' => 50,
	    'dispatch_mode'=>1, 
	));	

	//监听连接进入事件
	$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(); 

3、swoole_server参数说明

$serv = new Server(string $host, int $port = 0, int $mode = SWOOLE_PROCESS, int $sock_type = SWOOLE_SOCK_TCP);

(1)$host

参数用来指定监听的ip地址,如127.0.0.1,或者外网地址,或者0.0.0.0监听全部地址 IPv4使用
127.0.0.1表示监听本机,0.0.0.0表示监听所有地址 IPv6使用::1表示监听本机,:: (相当于0:0:0:0:0:0:0:0) 表示监听所有地址

(2)$port监听的端口,如9501

如果$sock_type为UnixSocket Stream/Dgram,此参数将被忽略
监听小于1024端口需要root权限
如果此端口被占用server->start时会失败

(3)$mode运行的模式

SWOOLE_PROCESS多进程模式(默认)
SWOOLE_BASE基本模式

(4)$sock_type

指定Socket的类型,支持TCP、UDP、TCP6、UDP6、UnixSocket Stream/Dgram 6种

这里只做个简单的概述,可以去查看更详细的 swoole官网server手册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨埃LUO定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值