AGENT SKILL

laravel-websocket

Use when building Laravel real-time features — Broadcasting events, ShouldBroadcast, private/presence channels, Echo client. For non-Laravel WebSockets, use the stack-native skill.

License 许可
MIT
最近更新
2026-11-11
Stars
★ 19
Forks
1

01 前言 Front Matter

name
laravel-websocket
packs
[ "laravel" ]
trust
{ "level": "professional" }
domain
engineering
install
{ "default": false, "removable": true }
framework
laravel
model_tier
medium
workspaces
[ "engineering" ]
description
Use when building Laravel real-time features — Broadcasting events, ShouldBroadcast, private/presence channels, Echo client. For non-Laravel WebSockets, use the stack-native skill.

03 SKILL.md 正文

laravel-websocket

When to use

Use when implementing real-time features — WebSockets, Broadcasting, or persistent connections.

Do NOT use when:

  • REST API endpoints (use api-design skill)
  • Reverb server setup/deployment (use laravel-reverb skill)

Procedure: Create a broadcast event

Step 0: Inspect

  1. Check config/broadcasting.php for driver (Reverb, Pusher, Ably).
  2. Check existing broadcast events — match patterns.
  3. Check routes/channels.php for channel authorization.

Step 1: Create event class

  1. Implement ShouldBroadcast.
  2. Define broadcastOn() with appropriate channel type (public/private/presence).
  3. Define broadcastAs() for event name.
  4. Define broadcastWith() — small payload (IDs + changed fields only).

Step 2: Authorize channel

Add authorization in routes/channels.php for private/presence channels.

Step 3: Client setup

Use Laravel Echo to listen on the channel. Wire up reconnection with exponential backoff.

Conventions

→ See guideline php/websocket.md for broadcasting setup, channel types, connection management, Echo.

Validate

  • Verify private/presence channels have authorization in routes/channels.php.
  • Confirm event implements ShouldBroadcast (or ShouldBroadcastNow).
  • Check that no sensitive data is broadcast on public channels.
  • Test client receives event — use browser console or Echo debug mode.

Output format

  1. Event class with broadcastOn() and channel definitions
  2. Client-side listener integration code

Gotcha

  • Connections are stateful — don't assume they persist after page navigation.
  • Always implement reconnection with exponential backoff.
  • Don't broadcast sensitive data on public channels — use private/presence.

Do NOT

  • Do NOT send entire model objects — select only needed fields.
  • Do NOT skip channel authorization for user-specific data.
  • Do NOT rely on WebSocket delivery — use acknowledgments for critical messages.

Auto-trigger keywords

  • WebSocket
  • real-time
  • broadcasting
  • Laravel Echo
  • channel authorization
  • ShouldBroadcast

04 同仓库更多 Skills