File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -245,15 +245,13 @@ private function onRequest(array $reqInfo): void
245245 // 半关闭检测
246246 $ connHeader = $ reqInfo ['server ' ]['HTTP_CONNECTION ' ] ?? '' ;
247247 $ upgradeHeader = $ reqInfo ['server ' ]['HTTP_UPGRADE ' ] ?? '' ;
248- $ keepAlive = strtolower ($ connHeader ) === 'keep-alive ' ;
249- $ isWebSocketUpgrade = strtolower ($ upgradeHeader ) === 'websocket ' &&
250- str_contains (strtolower ($ connHeader ), 'upgrade ' );
248+ $ keepAlive = strtolower ($ connHeader ) !== 'close ' ;
249+ $ isWebSocketUpgrade = strtolower ($ upgradeHeader ) === 'websocket ' && str_contains (strtolower ($ connHeader ), 'upgrade ' );
251250
252251 if ($ keepAlive || $ isWebSocketUpgrade ) {
253252 $ response ->withHeader ('Connection ' , $ keepAlive ? 'keep-alive ' : 'Upgrade ' );
254253 } else {
255254 $ response ->withHeader ('Connection ' , 'close ' );
256- $ this ->stream ->shutdownRead ();
257255 }
258256
259257 try {
@@ -263,6 +261,8 @@ private function onRequest(array $reqInfo): void
263261 } catch (Throwable $ exception ) {
264262 $ req ->respond ($ exception ->getMessage (), [], 500 );
265263 $ this ->reset ();
264+ } finally {
265+ ($ keepAlive || $ isWebSocketUpgrade ) || $ this ->disconnect ();
266266 }
267267 }
268268
You can’t perform that action at this time.
0 commit comments