Skip to main content

Core Types

SocketServerOptions

interface SocketServerOptions {
  redisUrl?: string;
  redisOptions?: RedisOptions;
  redis?: Redis;
}

ServerSocket

interface ServerSocket {
  id: string;
  connected: boolean;
  
  emit(event: string, data: any, ack?: AckCallback): void;
  on(event: string, handler: EventHandler): void;
  join(room: string): Promise<void>;
  leave(room: string): Promise<void>;
  getRooms(): Set<string>;
  broadcastToRoom(room: string, event: string, data: any): void;
  disconnect(): void;
}

ClientSocket

interface ClientSocket {
  id: string | null;
  connected: boolean;
  
  emit(event: string, data: any, ack?: AckCallback): void;
  on(event: string, handler: EventHandler): void;
  disconnect(): void;
}

SocketMessage

interface SocketMessage {
  id: string;
  event: string;
  data: any;
  timestamp: number;
  requiresAck?: boolean;
  messageId?: string;
}

Next Steps