diff --git a/app/process/WebmanPushServer.php b/app/process/WebmanPushServer.php new file mode 100644 index 0000000..25169f8 --- /dev/null +++ b/app/process/WebmanPushServer.php @@ -0,0 +1,41 @@ +apiListen; + $self = $this; + Timer::add( + 0.01, + static function () use ($apiListen, $self): void { + try { + $apiWorker = new Worker($apiListen); + $apiWorker->onMessage = [$self, 'onApiClientMessage']; + $apiWorker->listen(); + } catch (Throwable $e) { + Log::error('WebmanPushServer HTTP API listen failed: ' . $e->getMessage()); + } + }, + [], + false + ); + + Timer::add($this->keepAliveTimeout / 2, [$this, 'checkHeartbeat']); + Timer::add($this->webHookDelay, [$this, 'webHookCheck']); + } +} diff --git a/config/plugin/webman/push/process.php b/config/plugin/webman/push/process.php index 01c545d..3126e5a 100644 --- a/config/plugin/webman/push/process.php +++ b/config/plugin/webman/push/process.php @@ -1,10 +1,10 @@ [ - 'handler' => Server::class, + 'handler' => WebmanPushServer::class, 'listen' => config('plugin.webman.push.app.websocket'), 'count' => 1, // 必须是1 'reloadable' => false, // 执行reload不重启