Просмотр исходного кода

Merge branch 'master' of http://git.huaml.com/zhh/huahuibao

shish 5 лет назад
Родитель
Сommit
d27f805f7f

+ 0 - 5
app-hd/controllers/WsController.php

@@ -22,12 +22,7 @@ class WsController extends BaseController
         $post = Yii::$app->request->post();
         $clientId = isset($post['clientId']) ? $post['clientId'] : '';
         $shopAdminId = $this->shopAdminId;
-        Yii::info("ws band shopAdminId clientId ". $shopAdminId.'---'.$clientId);
         Gateway::bindUid($clientId, $shopAdminId);
-        $isOnlineUid = Gateway::isUidOnline($shopAdminId);
-        $isOnline = Gateway::isOnline($clientId);
-        // Yii::$app->cache->set($shopAdminId,$clientId);
-        Yii::info("ws band isOnlineUid isOnline ". $isOnlineUid.'---'.$isOnline);
         util::complete();
     }
 

+ 9 - 17
biz-ghs/ws/services/WsService.php

@@ -20,18 +20,10 @@ class WsService
                 $audio = base64_encode($audio);
                 $data = ['type' => 'money','url'=>'data:audio/mp3;base64,'.$audio, 'msg' => $msg,'money'=>$money];
                 //判断是否在线
-                $online = Gateway::isUidOnline($adminId);
+                // $online = Gateway::isUidOnline($adminId);
                 Gateway::sendToUid($adminId, json_encode($data));
-//                $clientId = Yii::$app->cache->get($adminId);
-//                Yii::info("clientId:".$clientId);
-//                if($clientId){
-//                    Gateway::sendToClient($clientId, json_encode($data));
-//                }
-                if($online){
-
-                }else{
-                    Yii::info("用户不在线:".$adminId);
-                }
+                $client = Gateway::getClientIdByUid($adminId);
+                Yii::info("getClientIdByUid res :".json_encode($client));
 
             }catch (\Exception $exception){
                 Yii::warning("ws arrivalNotice error ". $exception->getMessage());
@@ -68,13 +60,13 @@ class WsService
         Yii::info("触发订单通知:".$shopAdminId);
         try{
             //判断是否在线
-            $online = Gateway::isUidOnline($shopAdminId);
+            //$online = Gateway::isUidOnline($shopAdminId);
             Gateway::sendToUid($shopAdminId, json_encode($data));
-            if($online){
-
-            }else{
-                Yii::info("用户不在线:".$shopAdminId);
-            }
+//            if($online){
+//
+//            }else{
+//                Yii::info("用户不在线:".$shopAdminId);
+//            }
         }catch (\Exception $exception){
             Yii::warning("ws arrivalNotice error ". $exception->getMessage());
         }

+ 9 - 9
vendor/workerman/GatewayWorker/vendor/workerman/gateway-worker/src/Lib/Context.php

@@ -115,8 +115,8 @@ class Context
      */
     public static function addressToClientId($local_ip, $local_port, $connection_id)
     {
-        //return bin2hex(pack('NnN', $local_ip, $local_port, $connection_id));
-        return bin2hex(pack('NNnN', time(), $local_ip, $local_port, $connection_id));
+        return bin2hex(pack('NnN', $local_ip, $local_port, $connection_id));
+        //return bin2hex(pack('NNnN', time(), $local_ip, $local_port, $connection_id));
     }
 
     /**
@@ -128,15 +128,15 @@ class Context
      */
     public static function clientIdToAddress($client_id)
     {
-//        if (strlen($client_id) !== 20) {
-//            echo new Exception("client_id $client_id is invalid");
-//            return false;
-//        }
-//        return unpack('Nlocal_ip/nlocal_port/Nconnection_id', pack('H*', $client_id));
-        if (strlen($client_id) !== 28) {
+        if (strlen($client_id) !== 20) {
             echo new Exception("client_id $client_id is invalid");
             return false;
         }
-        return unpack('Ntime/Nlocal_ip/nlocal_port/Nconnection_id', pack('H*', $client_id));
+        return unpack('Nlocal_ip/nlocal_port/Nconnection_id', pack('H*', $client_id));
+//        if (strlen($client_id) !== 28) {
+//            echo new Exception("client_id $client_id is invalid");
+//            return false;
+//        }
+//        return unpack('Ntime/Nlocal_ip/nlocal_port/Nconnection_id', pack('H*', $client_id));
     }
 }

+ 13 - 1
vendor/workerman/gatewayclient/Gateway.php

@@ -1078,12 +1078,14 @@ class Gateway
      */
     protected static function sendCmdAndMessageToClient($client_id, $cmd, $message, $ext_data = '')
     {
+        echo $cmd."\n";
         // 如果是发给当前用户则直接获取上下文中的地址
         if ($client_id === Context::$client_id || $client_id === null) {
             $address       = long2ip(Context::$local_ip) . ':' . Context::$local_port;
             $connection_id = Context::$connection_id;
         } else {
             $address_data  = Context::clientIdToAddress($client_id);
+            var_dump($address_data);
             if (!$address_data) {
                 return false;
             }
@@ -1094,10 +1096,14 @@ class Gateway
         $gateway_data['cmd']           = $cmd;
         $gateway_data['connection_id'] = $connection_id;
         $gateway_data['body']          = $message;
+
         if (!empty($ext_data)) {
             $gateway_data['ext_data'] = $ext_data;
         }
-
+        print_r($gateway_data);
+        $res = static::sendToGateway($address, $gateway_data);
+        var_dump($res);
+        return $res;
         return static::sendToGateway($address, $gateway_data);
     }
 
@@ -1418,6 +1424,7 @@ class Context
     public static function addressToClientId($local_ip, $local_port, $connection_id)
     {
         return bin2hex(pack('NnN', $local_ip, $local_port, $connection_id));
+        //return bin2hex(pack('NNnN', time(), $local_ip, $local_port, $connection_id));
     }
 
     /**
@@ -1426,6 +1433,11 @@ class Context
      */
     public static function clientIdToAddress($client_id)
     {
+//        if (strlen($client_id) !== 28) {
+//            echo new Exception("client_id $client_id is invalid");
+//            return false;
+//        }
+//        return unpack('Ntime/Nlocal_ip/nlocal_port/Nconnection_id', pack('H*', $client_id));
         if(strlen($client_id) !== 20)
         {
             throw new \Exception("client_id $client_id is invalid");