AgentSkillsCN

laravel-reverb

使用 Laravel Reverb 实现 WebSocket 的实时通信。适用于添加实时更新、聊天、通知或在线状态等功能时。

SKILL.md
--- frontmatter
name: laravel-reverb
description: Implement real-time WebSocket communication with Laravel Reverb. Use when adding live updates, chat, notifications, or presence features.
versions:
  laravel: "12.46"
  reverb: "1.4"
  php: "8.5"
user-invocable: false
references: references/channels.md, references/client.md
related-skills: laravel-architecture, laravel-queues

Laravel Reverb

Agent Workflow (MANDATORY)

Before ANY implementation, use TeamCreate to spawn 3 agents:

  1. fuse-ai-pilot:explore-codebase - Analyze existing broadcasting patterns
  2. fuse-ai-pilot:research-expert - Verify Reverb docs via Context7
  3. mcp__context7__query-docs - Check WebSocket and event patterns

After implementation, run fuse-ai-pilot:sniper for validation.


Overview

ComponentPurpose
Reverb ServerFirst-party WebSocket server for Laravel
BroadcastingSend events from server to client
ChannelsPublic, private, presence scoping
EchoClient-side event listener

Decision Guide

code
Need real-time?
├── Live notifications → Reverb + private channel
├── Chat / messaging → Reverb + presence channel
├── Live dashboard → Reverb + public channel
├── Collaborative editing → Reverb + whisper
└── Background tasks → NOT Reverb (use Queues)

Quick Setup

bash
php artisan install:broadcasting
env
BROADCAST_CONNECTION=reverb
REVERB_APP_ID=my-app
REVERB_APP_KEY=my-key
REVERB_APP_SECRET=my-secret
REVERB_HOST=0.0.0.0
REVERB_PORT=8080

Critical Rules

  1. Use private channels for authenticated data
  2. Authorize channels in routes/channels.php
  3. Use ShouldBroadcast for queued delivery (recommended)
  4. Run Reverb behind Nginx/Caddy in production with SSL

Reference Guide

NeedReference
Channel types, authorizationchannels.md
Echo setup, client listenersclient.md

Best Practices

DO

  • Use ShouldBroadcast with queue for scalability
  • Authorize private and presence channels
  • Use presence channels for user awareness

DON'T

  • Broadcast sensitive data on public channels
  • Forget to configure CORS for cross-origin clients
  • Expose Reverb directly without a reverse proxy