LLaraNode
Events Package

Broadcasting

Broadcast events to clients via WebSockets.

Broadcasting

Broadcast events to clients via WebSockets.

Channel Types

import { PublicChannel, PrivateChannel, PresenceChannel } from "@lara-node/events";

// Public channel (anyone can listen)
new PublicChannel("chat");

// Private channel (requires auth)
new PrivateChannel(`user.${userId}`);

// Presence channel (tracks who is online)
new PresenceChannel(`room.${roomId}`);

Broadcasting Events

import { ShouldBroadcast, BroadcastAs, BroadcastToOthers } from "@lara-node/events";

@ShouldBroadcast()
class MessageSent {
  constructor(public message: Message) {}

  broadcastOn() {
    return new PrivateChannel(`chat.${this.message.roomId}`);
  }
}

Broadcast Decorators

@ShouldBroadcast()
@BroadcastAs("new-message")
@BroadcastToOthers()
class MessageSent {
  broadcastOn() {
    return new Channel("chat");
  }

  broadcastWith() {
    return {
      id: this.message.id,
      text: this.message.text,
      user: this.message.user.name,
    };
  }
}

Broadcast Conditions

@ShouldBroadcast()
class OrderStatusChanged {
  broadcastWhen() {
    return this.order.status === "shipped";
  }
}

Broadcast Facade

import { Broadcast } from "@lara-node/events";

Broadcast.channel("chat").emit("message", data);
Broadcast.toOthers().channel("chat").emit("message", data);

Configuration

BROADCAST_DRIVER=websocket

Next Steps