key = '1223454461'; // 加载框架里面的文件 require __DIR__ . '/../../../vendor/autoload.php'; $http = ( new App() )->http; $response = $http->run(); $this->ws = new Server("0.0.0.0", Config::get('swoole.server.mport')); $this->ws->set([ //worker进程数 'worker_num' => 4, //task进程数 'task_worker_num' => 4, //listen backlog 'backlog' => 128, 'max_request' => 50, //心跳检测 每隔多少秒,遍历一遍所有的连接 'heartbeat_check_interval' => 30, //心跳检测 最大闲置时间,超时触发close并关闭 'heartbeat_idle_time' => 65, // 总开关,用来开启tcp_keepalive 'open_tcp_keepalive' => 1, // 4s没有数据传输就进行检测 'tcp_keepidle' => 10, // 4s没有数据传输就进行检测 'tcp_keepcount' => 10, // 1s探测一次,即每隔1s给客户端发一个包(然后客户端可能会回一个ack的包,如果服务端收到了这个ack包,那么说明这个连接是活着的)'tcp_keepcount' => 5, // 探测的次数,超过5次后客户端还没有回ack包,那么close此连接 'tcp_keepinterval' => 5, 'log_file' => '/www/wwwroot/swoole.log', 'daemonize' => 1 ]); $this->ws->on("open", [$this, 'onOpen']); $this->ws->on("message", [$this, 'onMessage']); $this->ws->on("task", [$this, 'onTask']); $this->ws->on("finish", [$this, 'onFinish']); $this->ws->on("close", [$this, 'onClose']); $this->ws->on('workerStart' ,[$this ,'onWorkerStart']); $this->ws->start(); } public function onWorkerStart() { $this->messageHandler = new Some(); } /** * @param $ws * @param $request * @功能说明:建立连接回调 * @author chenniang * @DataTime: 2021-07-02 18:17 */ public function onOpen($ws, $request) { $request->get['action'] = !empty($request->get['action'])?$request->get['action']:'mOnOpen'; if(method_exists($this->messageHandler, $request->get['action'])) { // try{ call_user_func([$this->messageHandler, $request->get['action']] , $request->get,$request->fd); // }catch(Exception $e) { // // } } // echo FILE_UPLOAD_PATH; } /** * @param $ws * @param $frame * @功能说明:接受消息回调 * @author chenniang * @DataTime: 2021-07-02 18:17 */ public function onMessage($ws, $frame) { $data = @json_decode($frame->data,true); if(is_array($data)){ if(method_exists($this->messageHandler, $data['action'])) { // try{ call_user_func([$this->messageHandler, $data['action']] ,$ws,$data,$frame->fd); // }catch(Exception $e) { // // } } } } /** * @param $serv * @param $task_id * @param $worker_id * @param $data * @功能说明:完成异步任务回调 * @author chenniang * @DataTime: 2021-07-02 18:17 */ public function onTask($serv, $task_id, $worker_id, $data) { //返回字符串给worker进程——>触发onFinish return "success"; } /** * @param $serv * @param $task_id * @param $data * @功能说明:完成任务投递回调 * @author chenniang * @DataTime: 2021-07-02 18:16 */ public function onFinish($serv, $task_id, $data) { //task_worker进程将任务处理结果发送给worker进程 echo "完成任务{$task_id}投递 处理结果:{$data}"; } /** * @param $ws * @param $fd * @功能说明:关闭连接回调 * @author chenniang * @DataTime: 2021-07-02 18:16 */ public function onClose($ws, $fd) { // try{ call_user_func([$this->messageHandler, 'loginOut'] ,$ws, $fd); // }catch(Exception $e) { // // } // echo "{$fd}关闭了连接1"; } } $obj = new Ws();