@halloei apparently you have to prefix your event with a dot. Like so.
<script>
Echo.channel('mychan')
.listen('.myevent', (e) => {
console.log('Hello World!', e);
});
</script>
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Greetings,
I've setup websockets with Laravel sucessfully with an own implementation. Now I'd like to switch to Laravel Echo and laravel-echo-server. But, after many hours of trying and reading every piece of documentation I could find, I do need further help.
What's happening when I fire an event: The queue worker processes the event as desired: "Processed: Illuminate\Broadcasting\BroadcastEvent". But nothing happens in the laravel-echo-server console nor on the client.
Some information:
Laravel is running on port 8001
Redis is running on 6379
the queue worker is running (php artisan queue:work)
Laravel, Redis and laravel-echo-server are running on the same machine (192.168.134.214)
when trying private channels the authentication in the BroadcastServiceProvider seems to work (the server writes errors to the console if it fails)
the client uses the socket.io script of the laravel-echo-server: <script src="//192.168.134.214:6001/socket.io/socket.io.js"></script>
Excerpt of my .env:
BROADCAST_DRIVER=redis
CACHE_DRIVER=redis
SESSION_DRIVER=redis
QUEUE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
The laravel-echo-server.json:
{
"appKey": "<myAppKey>",
"authEndpoint": "/broadcasting/auth",
"authHost": "http://localhost:8001",
"database": "redis",
"databaseConfig": {
"redis": {
"port": "6379",
"host": "http://localhost"
},
"sqlite": {
"databasePath": "/database/laravel-echo-server.sqlite"
}
},
"devMode": true,
"host": "192.168.134.214",
"port": "6001",
"sslCertPath": "",
"sslKeyPath": ""
}
app.js
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'socket.io',
host: 'http://192.168.134.214:6001',
});
app.blade.php
<script>
Echo.channel('mychan')
.listen('myevent', (e) => {
console.log('Hello World!', e);
});
</script>
Parts of the Event "NewsPublished":
class NewsPublished implements ShouldBroadcast {
use InteractsWithSockets, SerializesModels;
public function broadcastOn() {
return new Channel('mychan');
}
public function broadcastAs() {
return 'myevent';
}
}
..and I'm firing the Event with event(new App\Events\NewsPublished());
I was hoping to get some information out of the laravel-echo-server when switching "devMode" to true. But that doesn't seem to change anything!
Best regards
Please or to participate in this conversation.