From ea3328f5b20a358f54182d795e89c2f013e94c00 Mon Sep 17 00:00:00 2001 From: Neko Ayaka Date: Sat, 10 Jan 2026 00:45:08 +0800 Subject: [PATCH] fix(server-*): rename message ping & pong body & type --- packages/server-runtime/src/index.ts | 10 ++++++---- packages/server-sdk/src/client.ts | 12 +++++++----- packages/server-shared/src/types/websocket/events.ts | 6 +++--- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/server-runtime/src/index.ts b/packages/server-runtime/src/index.ts index c587eb33d..bd9acf310 100644 --- a/packages/server-runtime/src/index.ts +++ b/packages/server-runtime/src/index.ts @@ -9,7 +9,7 @@ import type { import type { AuthenticatedPeer, Peer } from './types' import { availableLogLevelStrings, Format, LogLevelString, logLevelStringToLogLevelMap, useLogg } from '@guiiai/logg' -import { MessageHeartbeat, MessageHeartbeatMark, WebSocketEventSource } from '@proj-airi/server-shared/types' +import { MessageHeartbeat, MessageHeartbeatKind, WebSocketEventSource } from '@proj-airi/server-shared/types' import { defineWebSocketHandler, H3 } from 'h3' import { optionOrEnv } from './config' @@ -48,6 +48,7 @@ export function setupApp(options?: { } heartbeat?: { readTimeout?: number + message?: MessageHeartbeat | string } }): H3 { const authToken = optionOrEnv(options?.auth?.token, 'AUTHENTICATION_TOKEN', '') @@ -67,6 +68,7 @@ export function setupApp(options?: { const peers = new Map() const peersByModule = new Map>() const heartbeatTtlMs = options?.heartbeat?.readTimeout ?? DEFAULT_HEARTBEAT_TTL_MS + const heartbeatMessage = options?.heartbeat?.message ?? MessageHeartbeat.Pong const routingMiddleware = [ ...(options?.routing?.policy ? [createPolicyMiddleware(options.routing.policy)] : []), ...(options?.routing?.middleware ?? []), @@ -168,12 +170,12 @@ export function setupApp(options?: { p.lastHeartbeatAt = Date.now() } - if (event.data.message === MessageHeartbeat.Ping) { + if (event.data.kind === MessageHeartbeatKind.Ping) { send(peer, { type: 'transport:connection:heartbeat', data: { - message: MessageHeartbeat.Pong, - mark: MessageHeartbeatMark.Pong, + kind: MessageHeartbeatKind.Pong, + message: heartbeatMessage, at: Date.now(), }, source: WebSocketEventSource.Server, diff --git a/packages/server-sdk/src/client.ts b/packages/server-sdk/src/client.ts index bac9af899..336f2b21a 100644 --- a/packages/server-sdk/src/client.ts +++ b/packages/server-sdk/src/client.ts @@ -1,6 +1,4 @@ import type { - MessageHeartbeat, - MessageHeartbeatMark, MetadataEventSource, WebSocketBaseEvent, WebSocketEvent, @@ -12,6 +10,10 @@ import type { import WebSocket from 'crossws/websocket' import { sleep } from '@moeru/std' +import { + MessageHeartbeat, + MessageHeartbeatKind, +} from '@proj-airi/server-shared/types' export interface ClientOptions { url?: string @@ -91,7 +93,7 @@ export class Client { }) this.onEvent('transport:connection:heartbeat', (event) => { - if (event.data.message === MessageHeartbeat.Ping) { + if (event.data.kind === MessageHeartbeatKind.Ping) { this.sendHeartbeatPong() } }) @@ -358,8 +360,8 @@ export class Client { this.send({ type: 'transport:connection:heartbeat', data: { + kind: MessageHeartbeatKind.Ping, message: this.opts.heartbeat?.message ?? MessageHeartbeat.Ping, - mark: MessageHeartbeatMark.Ping, at: Date.now(), }, }) @@ -370,8 +372,8 @@ export class Client { this.send({ type: 'transport:connection:heartbeat', data: { + kind: MessageHeartbeatKind.Pong, message: MessageHeartbeat.Pong, - mark: MessageHeartbeatMark.Pong, at: Date.now(), }, }) diff --git a/packages/server-shared/src/types/websocket/events.ts b/packages/server-shared/src/types/websocket/events.ts index 26cf8cc7b..a4bf46480 100644 --- a/packages/server-shared/src/types/websocket/events.ts +++ b/packages/server-shared/src/types/websocket/events.ts @@ -35,12 +35,12 @@ export interface RouteConfig { bypass?: boolean } -export enum MessageHeartbeat { +export enum MessageHeartbeatKind { Ping = 'ping', Pong = 'pong', } -export enum MessageHeartbeatMark { +export enum MessageHeartbeat { Ping = '🩵', Pong = '💛', } @@ -287,8 +287,8 @@ export interface WebSocketEvents { } 'transport:connection:heartbeat': { + kind: MessageHeartbeatKind message: MessageHeartbeat | string - mark?: '🩵' | '💛' at?: number }