From 860f1ea80dd409da3380d91acf92507c9e6a2a61 Mon Sep 17 00:00:00 2001 From: Justin Bosker Date: Mon, 20 Jul 2026 17:06:30 +0200 Subject: [PATCH] Add shared message interfaces --- shared/src/index.ts | 18 +++--------------- shared/src/messages/server.ts | 22 ++++++++++++++++++++++ shared/src/messages/wrapper.ts | 30 ++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 shared/src/messages/server.ts create mode 100644 shared/src/messages/wrapper.ts diff --git a/shared/src/index.ts b/shared/src/index.ts index bd25801..8522606 100644 --- a/shared/src/index.ts +++ b/shared/src/index.ts @@ -1,20 +1,8 @@ /** * Gemeinsames Shared-Modul für Manager und Wrapper. * - * Hier werden später die geteilten Message-Typen, - * Status-Interfaces und DTOs definiert. + * Hier werden gemeinsame Nachrichten-Interfaces exportiert. */ -export type MessageType = - | "wrapper.register" - | "wrapper.registered" - | "wrapper.heartbeat" - | "wrapper.status" - | "server.start" - | "server.stop" - | "server.started" - | "server.stopped"; - -export interface BaseMessage { - type: MessageType; -} +export * from "./messages/wrapper"; +export * from "./messages/server"; diff --git a/shared/src/messages/server.ts b/shared/src/messages/server.ts new file mode 100644 index 0000000..ff5e861 --- /dev/null +++ b/shared/src/messages/server.ts @@ -0,0 +1,22 @@ +export interface ServerStartCommand { + type: "server.start"; + serverId: string; + name: string; + port: number; + queryPort: number; +} + +export interface ServerStopCommand { + type: "server.stop"; + serverId: string; +} + +export interface ServerStartedEvent { + type: "server.started"; + serverId: string; +} + +export interface ServerStoppedEvent { + type: "server.stopped"; + serverId: string; +} diff --git a/shared/src/messages/wrapper.ts b/shared/src/messages/wrapper.ts new file mode 100644 index 0000000..73901d2 --- /dev/null +++ b/shared/src/messages/wrapper.ts @@ -0,0 +1,30 @@ +export interface WrapperRegisterMessage { + type: "wrapper.register"; + wrapperId?: string; + hostname: string; + cpu: number; + ram: number; + replyQueue: string; +} + +export interface WrapperHeartbeatMessage { + type: "wrapper.heartbeat"; + wrapperId: string; +} + +export interface WrapperStatusMessage { + type: "wrapper.status"; + wrapperId: string; + servers: Array<{ + id: string; + name: string; + port: number; + queryPort: number; + pid?: number; + alive: boolean; + players: number; + maxPlayers: number; + started: number; + }>; + ramFree: number; +}