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-designskill) - Reverb server setup/deployment (use
laravel-reverbskill)
Procedure: Create a broadcast event
Step 0: Inspect
- Check
config/broadcasting.phpfor driver (Reverb, Pusher, Ably). - Check existing broadcast events — match patterns.
- Check
routes/channels.phpfor channel authorization.
Step 1: Create event class
- Implement
ShouldBroadcast. - Define
broadcastOn()with appropriate channel type (public/private/presence). - Define
broadcastAs()for event name. - 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(orShouldBroadcastNow). - Check that no sensitive data is broadcast on public channels.
- Test client receives event — use browser console or Echo debug mode.
Output format
- Event class with broadcastOn() and channel definitions
- 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
unknown-key-fixture
Declares a key the schema does not know.
portable-fixture
Declares only semantics the MCP-lite carrier transports whole.
non-portable-fixture
Declares a runtime semantic the carrier drops.
candidate-zero-width
A candidate whose prose carries an invisible joiner.
candidate-disclosure-suppression
A candidate whose prose tells the agent to withhold from the user.
candidate-dangerous-frontmatter
A candidate claiming an unscoped tool grant and a permission bypass.