Browse Source

fix: shadowrocket grpc

tokumeikoi 3 years ago
parent
commit
a4e1ba4016
1 changed files with 7 additions and 7 deletions
  1. 7 7
      app/Utils/Shadowrocket.php

+ 7 - 7
app/Utils/Shadowrocket.php

@@ -47,13 +47,13 @@ class Shadowrocket
         if ($server['network'] === 'grpc') {
             $config['obfs'] = "grpc";
             if (isset($server['networkSettings'])) {
-                $grpcObject = json_decode($server['networkSettings'], true);
-                if (isset($grpcObject['serviceName'])) {
-                    $config['obfsParam'] = json_encode([
-                        'Host' => $grpcObject['serviceName']
-                    ]);
-                    $config['path'] = '/';
-                }
+                $grpcSettings = json_decode($server['networkSettings'], true);
+                if (isset($grpcSettings['serviceName']) && !empty($grpcSettings['serviceName']))
+                    $config['path'] = $grpcSettings['serviceName'];
+                if (isset($grpcSettings['host']) && !empty($grpcSettings['host']))
+                    $config['obfsParam'] = $grpcSettings['host'];
+                if (!isset($grpcSettings['host']) && !empty($tlsSettings['serverName']))
+                    $config['obfsParam'] = $tlsSettings['serverName'];
             }
         }
         $query = http_build_query($config, '', '&', PHP_QUERY_RFC3986);