argument('action'); switch ($action) { case 'close': break; default: $this->start(); break; } } //开启WebSocket public function start() { $url = config('public.swoolwebsocketurl'); $por = config('public.swoolwebsocketurlpor'); $this->ws = new \swoole_websocket_server('0.0.0.0', 9507,SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL); //创建一个端口 $this->ws->set(array( 'reactor_num' => 2, //reactor线程数 'worker_num' => 4, //worker进程数 'backlog' => 128, //Listen队列长度 'max_request' => 10,//最大连接 'daemonize'=>0,//守护进程 'ssl_cert_file' => base_path() . config('app.ssl_cert_file'), 'ssl_key_file' => base_path() . config('app.ssl_key_file'), )); $this->ws->on('open', function ($ws, $request) { // //链接成功 }); //监听WebSocket消息事件 $this->ws->on('message', function ($ws, $frame) { $userdata = new SwooleCommandController(); $this->ws->push($frame->fd,$userdata->chemicals($frame->data),1); }); $this->ws->on('request', function ($request, $response,$from_id,$fd) { }); //监听WebSocket连接关闭事件 $this->ws->on('close', function ($ws, $fd) { echo "client:{$fd} is closed\n"; swoole_timer_clear($this->time); }); $this->ws->start(); } }