Skip to content

Commit 8cad929

Browse files
authored
Update TcpConnection.php
1 parent 402e8d8 commit 8cad929

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/Connection/TcpConnection.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use Workerman\Events\Event;
2424
use Workerman\Events\EventInterface;
2525
use Workerman\Events\Select;
26+
use Workerman\Protocols\Http;
2627
use Workerman\Protocols\Http\Request;
2728
use Workerman\Protocols\ProtocolInterface;
2829
use Workerman\Worker;
@@ -668,18 +669,22 @@ public function baseRead($socket, bool $checkEof = true): void
668669
if ($this->recvBuffer === '') {
669670
if (!isset($buffer[static::MAX_CACHE_STRING_LENGTH]) && isset($requests[$buffer])) {
670671
++self::$statistics['total_request'];
671-
$request = $requests[$buffer];
672-
if ($request instanceof Request) {
672+
if ($this->protocol === Http::class) {
673+
$request = static::$reuseRequest ? $requests[$buffer] : clone $requests[$buffer];
674+
$request->destroy();
673675
$request->connection = $this;
674676
$this->request = $request;
675677
try {
676678
($this->onMessage)($this, $request);
677679
} catch (Throwable $e) {
678680
$this->error($e);
679681
}
680-
$request->destroy();
681-
$requests[$buffer] = static::$reuseRequest ? $request : clone $request;
682+
if (!isset($requests[$buffer])) {
683+
$requests[$buffer] = $request;
684+
}
682685
return;
686+
} else {
687+
$request = $requests[$buffer];
683688
}
684689
try {
685690
($this->onMessage)($this, $request);

0 commit comments

Comments
 (0)