Bläddra i källkod

fix(proxy): fix proxy

roiwk 11 månader sedan
förälder
incheckning
8bd28eceb2
1 ändrade filer med 13 tillägg och 1 borttagningar
  1. 13 1
      src/Connection/AsyncTcpConnection.php

+ 13 - 1
src/Connection/AsyncTcpConnection.php

@@ -375,7 +375,19 @@ class AsyncTcpConnection extends TcpConnection
                 $str .= "Host: $this->remoteHost:$this->remotePort\r\n";
                 $str .= "Proxy-Connection: keep-alive\r\n\r\n";
                 fwrite($this->socket, $str);
-                fread($this->socket, 512);
+                // fread($this->socket, 512);
+                $proxyBuffer = '';
+                while (!feof($this->socket)) {
+                    $data = fread($this->socket, 1024);
+                    if ($data === false || $data === '') {
+                        break;
+                    }
+                    $proxyBuffer .= $data;
+                    // 根据协议判断是否已经读取完整,例如检查 "\r\n\r\n"
+                    if (strpos($proxyBuffer, "\r\n\r\n") !== false) {
+                        break;
+                    }
+                }
             }
             // Nonblocking.
             stream_set_blocking($this->socket, false);