fix(server-*): rename message ping & pong body & type

This commit is contained in:
Neko Ayaka
2026-01-10 00:45:08 +08:00
parent f0af59e26c
commit ea3328f5b2
3 changed files with 16 additions and 12 deletions
+6 -4
View File
@@ -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<string, AuthenticatedPeer>()
const peersByModule = new Map<string, Map<number | undefined, AuthenticatedPeer>>()
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,
+7 -5
View File
@@ -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<C = undefined> {
url?: string
@@ -91,7 +93,7 @@ export class Client<C = undefined> {
})
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<C = undefined> {
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<C = undefined> {
this.send({
type: 'transport:connection:heartbeat',
data: {
kind: MessageHeartbeatKind.Pong,
message: MessageHeartbeat.Pong,
mark: MessageHeartbeatMark.Pong,
at: Date.now(),
},
})
@@ -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<C = undefined> {
}
'transport:connection:heartbeat': {
kind: MessageHeartbeatKind
message: MessageHeartbeat | string
mark?: '🩵' | '💛'
at?: number
}