Skip to content

Feat: Add broadcasting subsystem (drivers + channel auth) #24

@3m1n3nc3

Description

@3m1n3nc3

Background: Real-time features need an abstracted broadcast layer supporting multiple drivers (Pusher, Redis, WebSocket, log), plus channel authorization.

Tasks:

  • Create a @h3ravel/broadcast package in the framework/packages directory.
  • Define BroadcastManager and driver contract.
  • Implement at least two drivers (e.g., log and redis or a simple in-process WS).
  • Implement channel auth middleware for private/guarded channels.
  • Provide event interface (shouldBroadcast, broadcastOn channels).
  • Add integration tests for broadcasting events and auth checks.
  • Document configuration and examples.

Acceptance criteria:

  • App can broadcast events via chosen driver.
  • Private channel authorization flow works (authenticated user allowed/denied).
  • Interface mirrors laravel as much as possible, creating the familiar DX while also adding it own unique twists and turns.
  • Tests cover driver behavior.

Difficulty: large

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions