Swoole\Server
此节包含 Swoole\Server
类的全部方法、属性、配置项以及所有的事件。Swoole\Server
类是所有异步风格服务器的基类,后面章节的 Http\Server
、WebSocket\Server
、Redis\Server
都继承于它。
方法
__construct()
创建一个异步 IO 的 Server 对象。
Swoole\Server(string $host = ‘0.0.0.0’, int $port = 0, int $mode = SWOOLE_PROCESS, int $sockType = SWOOLE_SOCK_TCP): \Swoole\Server
参数
string $host
- 功能:指定监听的 ip 地址
IPv4 使用 127.0.0.1
表示监听本机,0.0.0.0
表示监听所有地址
IPv6 使用::1
表示监听本机,::
(相当于 0:0:0:0:0:0:0:0
) 表示监听所有地
int $port
- 功能:指定监听的端口,如
9501
如果
$sockType
值为 UnixSocket Stream/Dgram,此参数将被忽略 监听小于1024
端口需要root
权限 如果此端口被占用server->start
时会失败
int $mode
- 功能:指定运行模式
- 默认值:SWOOLE_PROCESS 多进程模式(默认)
-
int $sockType
功能:指定这组 Server 的类型
- 其它值:
SWOOLE_TCP/SWOOLE_SOCK_TCP
tcp ipv4 socketSWOOLE_TCP6/SWOOLE_SOCK_TCP6
tcp ipv6 socketSWOOLE_UDP/SWOOLE_SOCK_UDP
udp ipv4 socketSWOOLE_UDP6/SWOOLE_SOCK_UDP6
udp ipv6 socket- SWOOLE_UNIX_DGRAM unix socket dgram
- SWOOLE_UNIX_STREAM unix socket stream
示例
```bash <?php $server = new \Swoole\Server(string $host, int $port = 0, int $mode = SWOOLE_PROCESS, int $sockType = SWOOLE_SOCK_TCP);
// 您可以混合使用UDP/TCP,同时监听内网和外网端口,多端口监听参考 addlistener小节。 $server->addlistener(“127.0.0.1”, 9502, SWOOLE_SOCK_TCP); // 添加 TCP $server->addlistener(“192.168.1.100”, 9503, SWOOLE_SOCK_TCP); // 添加 Web Socket $server->addlistener(“0.0.0.0”, 9504, SWOOLE_SOCK_UDP); // UDP $server->addlistener(“/var/run/myserv.sock”, 0, SWOOLE_UNIX_STREAM); //UnixSocket Stream $server->addlistener(“127.0.0.1”, 9502, SWOOLE_SOCK_TCP | SWOOLE_SSL); //TCP + SSL
$port = $server->addListener(“0.0.0.0”, 0, SWOOLE_SOCK_TCP); // 系统随机分配端口,返回值为随机分配的端口 echo $port->port; ```