25 lines
1.2 KiB
Markdown
25 lines
1.2 KiB
Markdown
# laravel-websockets
|
|
|
|
## Overview
|
|
WebSocket server for Laravel, Pusher-compatible. Ratchet-based, runs as a long-lived artisan command via supervisor.
|
|
|
|
## Architecture
|
|
- `src/Server/WebSocketHandler.php` — main Ratchet handler (onOpen/onMessage/onClose/onError)
|
|
- `src/Websocket/Handler.php` — higher-level handler with app verification, channel management
|
|
- `src/Server/Loggers/` — decorator loggers (HttpLogger, ConnectionLogger, WebSocketsLogger)
|
|
- `src/Console/Commands/StartServer.php` — artisan command that boots the event loop
|
|
|
|
## Logging
|
|
- Auto-registers a `websocket` log channel (daily, `storage/logs/websocket.log`, 7-day retention)
|
|
- `wsLog()` helper in WebSocketHandler for structured server-side logging
|
|
- Logger base class persists to file via `fileLog()` in addition to console output
|
|
|
|
## Configuration
|
|
- PUSHER_APP_KEY should always be `websocket` — generic identifier, not environment-specific
|
|
- Port 6001 (supervisor), Traefik terminates TLS in front
|
|
- Config at `config/websockets.php`, apps defined via env vars
|
|
|
|
## Conventions
|
|
- Improvements go here (the package), not in consumer vendor/ folders
|
|
- Commit, push, then `composer update` in the consumer project
|