Download the PHP package artisan-build/resonance without Composer
On this page you can find all versions of the php package artisan-build/resonance. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download artisan-build/resonance
More information about artisan-build/resonance
Files in artisan-build/resonance
Package resonance
Short Description Laravel package for beautiful Reverb, Pusher, Soketi, and Ably integration in pure PHP.
License MIT
Homepage https://github.com/artisan-build/resonance
Informations about the package resonance

Resonance
Resonance is a Laravel WebSocket client for CLI commands, queue workers, and background processes. Inspired by Laravel Echo's API, it provides a familiar interface for real-time event listening—but from your PHP backend instead of the browser.
Built on artisan-build/pusher-websocket-php and ReactPHP's async event loop, Resonance connects to Reverb, Pusher, Soketi, and other Pusher-compatible servers.
Why Resonance?
Laravel Echo handles real-time features in the browser, but what about server-side PHP processes that need to listen for WebSocket events? Resonance fills that gap with:
- Echo-inspired API - Familiar
listen(),private(),join()methods - Manager pattern - Connect to multiple WebSocket servers simultaneously
- Extensible drivers - Add custom broadcasters with
extend() - Laravel-native - Config files, facades, and service providers out of the box
Installation
You can publish the config file with:
Configuration
Resonance follows Laravel's convention of defining connections in config and selecting via environment variable:
Configuration Options
| Option | Description |
|---|---|
broadcaster |
The broadcaster type: reverb, pusher, or null |
key |
Your app key for the WebSocket server |
authToken |
Bearer token for channel authorization (e.g., Sanctum token) |
host |
WebSocket server hostname |
port |
WebSocket server port |
forceTLS |
Whether to use secure WebSocket (wss://) |
cluster |
Pusher cluster (for Pusher broadcaster) |
channelAuthorization.endpoint |
Full URL to your broadcasting auth endpoint |
Note: The
authTokenis your authentication token (like a Laravel Sanctum token) used to authorize private/presence channel subscriptions. This is not the Reverb app secret—channel authorization is handled server-side where the signing secret lives.
Use RESONANCE_CONNECTION=null in your .env.testing to disable WebSocket connections during tests.
Usage
Basic Channel Subscription
Multiple Connections
Resonance uses the Manager pattern, allowing you to work with multiple connections:
Custom Drivers
Extend Resonance with custom broadcasters:
Direct Instantiation
Or instantiate directly with custom options:
Private Channels
Presence Channels
Connection Management
Encrypted Private Channels
Real-World Example: CLI Chat with Community Prompts
Here's a real-time chat application built with AsyncPrompt from artisan-build/community-prompts, demonstrating how Resonance enables interactive CLI tools:
This example showcases:
- Facade usage with config-driven auth token and endpoint
- Private channel subscription with automatic Bearer token authentication
listenToAll()for catching all channel eventslistenForWhisper()for peer-to-peer client eventswhisper()for sending client events without server round-trips
API Reference
Channel Methods
| Method | Description |
|---|---|
listen($event, $callback) |
Listen for a specific event |
listenToAll($callback) |
Listen for all events on the channel |
listenForWhisper($event, $callback) |
Listen for client whisper events |
stopListening($event) |
Stop listening to an event |
stopListeningForWhisper($event) |
Stop listening for a whisper |
notification($callback) |
Listen for Laravel notifications |
subscribed($callback) |
Callback when subscription succeeds |
error($callback) |
Callback when subscription fails |
Private Channel Methods
| Method | Description |
|---|---|
whisper($event, $data) |
Send a client event to other subscribers |
Presence Channel Methods
| Method | Description |
|---|---|
here($callback) |
Get current members when joining |
joining($callback) |
Called when a member joins |
leaving($callback) |
Called when a member leaves |
whisper($event, $data) |
Send a client event to other subscribers |
Supported Broadcasters
| Broadcaster | Status |
|---|---|
| Laravel Reverb | Supported |
| Pusher Channels | Supported |
| Soketi | Supported (via Pusher connector) |
| Ably | Planned |
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- Len Woodward
- Ed Grosvenor
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of resonance with dependencies
artisan-build/pusher-websocket-php Version ^0.1.0
illuminate/contracts Version ^11.0||^12.0
spatie/laravel-package-tools Version ^1.16