swoole_server::__construct [编辑本页]

创建一个swoole server资源对象。

$serv = new swoole_server(string $host, int $port, int $mode = SWOOLE_PROCESS,
    int $sock_type = SWOOLE_SOCK_TCP);
  • $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) 表示监听所有地址
  • $port监听的端口,如9501,监听小于1024端口需要root权限,如果此端口被占用server->start时会失败
  • $mode运行的模式,swoole提供了3种运行模式,默认为多进程模式
  • $sock_type指定socket的类型,支持TCP/UDP、TCP6/UDP6、UnixSock Stream/Dgram 6种
  • 使用$sock_type | SWOOLE_SSL可以启用SSL加密。启用SSL后必须配置ssl_key_file和ssl_cert_file
  • 1.7.11后增加了对Unix Socket的支持,详细请参见 /wiki/page/16.html
  • 构造函数中的参数与swoole_server::addlistener中是完全相同的
  • 高负载的服务器,请务必调整Linux内核参数
  • 3种Server运行模式介绍

Swoole1.6版本之后PHP版本去掉了线程模式,原因是php的内存管理器在多线程下容易发生错误
线程模式仅供C++中使用
BASE模式在1.6.4版本之后也可是使用多进程,设置worker_num来启用