From f8e6e8175bec8a6bff0fb8eb0f3fac7cddbb1e78 Mon Sep 17 00:00:00 2001 From: zhoudw <zhoudw@infobird.com> Date: Tue, 21 Dec 2021 16:59:16 +0800 Subject: [PATCH] 初始化 --- ws_server.php | 63 ++++++++++++++++--------------- 1 files changed, 33 insertions(+), 30 deletions(-) diff --git a/ws_server.php b/ws_server.php index e0171c2..df1d464 100644 --- a/ws_server.php +++ b/ws_server.php @@ -21,28 +21,46 @@ $this->redis_config = $config['redis']; $this->server = new Swoole\WebSocket\Server($this->server_config['host'], $this->server_config['port']); // swoole连接 - // $this->server->set([ - // 'task_worker_num' => 8, - // 'enable_coroutine' => true, - // 'task_enable_coroutine' => true - // ]); - if (!$this->redis) { - $this->redis = new Redis(); - $this->redis->connect($this->redis_config['host'],$this->redis_config['port'] ); - $host = $this->server_config['allow_ip']; - $keyList = $this->redis->keys("*{$host}*"); - foreach ($keyList as $key => $value) { - $this->redis->del($value); + $this->server->set([ + 'task_worker_num' => 8, + 'enable_coroutine' => true, + 'task_enable_coroutine' => true + ]); + $this->server->on('WorkerStart', function (Swoole\WebSocket\Server $server) { + if (!$this->redis) { + $this->redis = new Redis(); + $this->redis->connect($this->redis_config['host'],$this->redis_config['port'] ); + $host = $this->server_config['allow_ip']; + $keyList = $this->redis->keys("*{$host}*"); + foreach ($keyList as $key => $value) { + $this->redis->del($value); + } + $this->redis->del("{$host}*"); + $this->redis->close(); } - $this->redis->close(); - } + }); $this->server->on('start', function (Swoole\WebSocket\Server $server) { echo "Websocket Server is started at ws://".$this->server_config['host'].":".$this->server_config['port']."\n"; }); $this->server->on('message', function (Swoole\WebSocket\Server $server, $frame) { - // $server->task($frame); + $server->task($frame); + // $ret = array('code' => 0, 'data' => null); + // $msgData = $this->is_json($frame->data,true); + // if($msgData){ + // $frameData = $msgData; + // $this->dealMsg($frameData,$frame->fd); + // }else{ + // $ret['code'] = -1; + // $ret['msg'] = 'data is null or data no json'; + // $server->push($frame->fd, json_encode($ret)); + // return; + // } + }); + + $this->server->on('task', function ($server, $task) { $ret = array('code' => 0, 'data' => null); + $frame = $task->data; $msgData = $this->is_json($frame->data,true); if($msgData){ $frameData = $msgData; @@ -54,21 +72,6 @@ return; } }); - - // $this->server->on('task', function ($server, $task) { - // $ret = array('code' => 0, 'data' => null); - // $frame = $task->data; - // $msgData = $this->is_json($frame->data,true); - // if($msgData){ - // $frameData = $msgData; - // $this->dealMsg($frameData,$frame->fd); - // }else{ - // $ret['code'] = -1; - // $ret['msg'] = 'data is null or data no json'; - // $server->push($frame->fd, json_encode($ret)); - // return; - // } - // }); $this->server->on('close', function ($ser, $fd) { $host = $this->server_config['allow_ip']; $this->redis->connect($this->redis_config['host'],$this->redis_config['port'] ); -- Gitblit v1.8.0