Skip to content

Commit 86a9c9b

Browse files
boyfoolimingxinleo
andauthored
Fixed bug that open event won't be executed after handshake right now. (#2210)
* fix:协程模式onOpen事件触发延迟 * Optimized code. Co-authored-by: 李铭昕 <[email protected]>
1 parent 6279dd0 commit 86a9c9b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/Server.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,18 @@ public function onClose($server, int $fd, int $reactorId): void
257257
*/
258258
protected function deferOnOpen(SwooleRequest $request, string $class, $server)
259259
{
260-
defer(function () use ($request, $class, $server) {
260+
$onOpen = function () use ($request, $class, $server) {
261261
$instance = $this->container->get($class);
262262
if ($instance instanceof OnOpenInterface) {
263263
$instance->onOpen($server, $request);
264264
}
265-
});
265+
};
266+
267+
if ($server instanceof SwooleResponse) {
268+
$onOpen();
269+
} else {
270+
defer($onOpen);
271+
}
266272
}
267273

268274
/**

0 commit comments

Comments
 (0)