File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change 23
23
use Workerman \Events \Event ;
24
24
use Workerman \Events \EventInterface ;
25
25
use Workerman \Events \Select ;
26
+ use Workerman \Protocols \Http ;
26
27
use Workerman \Protocols \Http \Request ;
27
28
use Workerman \Protocols \ProtocolInterface ;
28
29
use Workerman \Worker ;
@@ -668,18 +669,22 @@ public function baseRead($socket, bool $checkEof = true): void
668
669
if ($ this ->recvBuffer === '' ) {
669
670
if (!isset ($ buffer [static ::MAX_CACHE_STRING_LENGTH ]) && isset ($ requests [$ buffer ])) {
670
671
++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 ();
673
675
$ request ->connection = $ this ;
674
676
$ this ->request = $ request ;
675
677
try {
676
678
($ this ->onMessage )($ this , $ request );
677
679
} catch (Throwable $ e ) {
678
680
$ this ->error ($ e );
679
681
}
680
- $ request ->destroy ();
681
- $ requests [$ buffer ] = static ::$ reuseRequest ? $ request : clone $ request ;
682
+ if (!isset ($ requests [$ buffer ])) {
683
+ $ requests [$ buffer ] = $ request ;
684
+ }
682
685
return ;
686
+ } else {
687
+ $ request = $ requests [$ buffer ];
683
688
}
684
689
try {
685
690
($ this ->onMessage )($ this , $ request );
You can’t perform that action at this time.
0 commit comments