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