Swoole\Server

此节包含 Swoole\Server 类的全部方法、属性、配置项以及所有的事件。Swoole\Server 类是所有异步风格服务器的基类,后面章节的 Http\ServerWebSocket\ServerRedis\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 多进程模式(默认)
  • 其它值:SWOOLE_BASE 基本模式

    int $sockType

  • 功能:指定这组 Server 的类型

  • 其它值:
    • SWOOLE_TCP/SWOOLE_SOCK_TCP tcp ipv4 socket
    • SWOOLE_TCP6/SWOOLE_SOCK_TCP6 tcp ipv6 socket
    • SWOOLE_UDP/SWOOLE_SOCK_UDP udp ipv4 socket
    • SWOOLE_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; ```