diff --git a/apps/web-next/src/server/bind-production.ts b/apps/web-next/src/server/bind-production.ts index fcd9a44..b5b135a 100644 --- a/apps/web-next/src/server/bind-production.ts +++ b/apps/web-next/src/server/bind-production.ts @@ -23,6 +23,7 @@ import { import { InMemoryRealtimeBroadcaster, RealtimeHandlerRegistry, + realtimePingInboundDescriptor, type IRealtimeBroadcaster, type IRealtimeHandlerRegistry, } from "@repo/core-realtime"; @@ -120,6 +121,9 @@ export async function bindAllProduction(deps: BindAllDeps): Promise { bindProductionMarketingPages(resolvedConfig, tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 20 bindProductionNavigation(resolvedConfig, tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 21 bindProductionMedia(resolvedConfig, tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 22 + if (process.env.REALTIME_PING_DISABLED !== "true") { + realtimeRegistry.register(realtimePingInboundDescriptor(realtime)); + } bindRealtimeBridge(bus, realtime); } @@ -139,6 +143,9 @@ export async function bindAllDevSeed(deps: BindAllDeps): Promise { await bindDevSeedMarketingPages(tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 20 await bindDevSeedNavigation(tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 21 await bindDevSeedMedia(tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 22 + if (process.env.REALTIME_PING_DISABLED !== "true") { + realtimeRegistry.register(realtimePingInboundDescriptor(realtime)); + } bindRealtimeBridge(bus, realtime); } diff --git a/packages/core-realtime/src/realtime-ping.ts b/packages/core-realtime/src/realtime-ping.ts index a6a4378..0203131 100644 --- a/packages/core-realtime/src/realtime-ping.ts +++ b/packages/core-realtime/src/realtime-ping.ts @@ -23,7 +23,7 @@ export const realtimePongChannel = defineRealtimeChannel( export function realtimePingInboundDescriptor( broadcaster: IRealtimeBroadcaster, -): IInboundDescriptor { +): IInboundDescriptor<"realtime.ping", z.ZodType> { return { descriptor: realtimePingChannel, handler: async (input: PingPayload, ctx: RealtimeContext): Promise => {