feat(core-realtime): SocketIORealtimeBroadcaster

This commit is contained in:
2026-05-08 21:15:07 +02:00
parent 86b9418758
commit 9d04bdc65b
2 changed files with 49 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
import type { Server as IOServer } from "socket.io";
import type { z } from "zod";
import type { IRealtimeBroadcaster } from "./realtime-broadcaster.interface";
import type { RealtimeChannelDescriptor } from "./realtime-channel";
export class SocketIORealtimeBroadcaster implements IRealtimeBroadcaster {
constructor(private readonly io: IOServer) {}
async broadcast<T>(
descriptor: RealtimeChannelDescriptor<string, z.ZodType<T>>,
payload: T,
): Promise<void> {
descriptor.schema.parse(payload);
this.io.to(`ch:${descriptor.name}`).emit(descriptor.name, payload);
}
}