3 months ago

I don't receive a broadcast message in the front end laravel-echo-server

Posted 3 months ago by jorge_dev96

I'm currently working chat webpage with laravel-echo-server package in Laravel, I'm trying to show a message to send a message to one user and receive that message in realtime, but when I send a message it loads in my chat but the other user doesn't receive anything until I refresh the site. I think that laravel-echo-server isn't broadcasting correctly, but I don't know how to how to solve it. I checked if the event was correctly executed and it does but I dont' receive nothing. Can you help me? I'm using redis has a broadcaster and it seems to work correctly I added it to .env as a BROADCAST_DRIVER=redis and QUEUE_CONNECTION=redis


mounted() {
     .listen('NewMessage', (e) => {
          if (this.selectedContact && e.message.from =={

channels.php authenticate messages between users

Broadcast::channel('messages.{id}', function ($user, $id) {
    //dd($user->id, $id);
    return (int) $user->id === (int) $id;

NewMessage.php This is my event

class NewMessage implements ShouldBroadcast
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $message;

     * Create a new event instance.
     * @return void
    public function __construct(Message $message)
        $this->message = $message;

     * Get the channels the event should broadcast on.
     * @return \Illuminate\Broadcasting\Channel|array
    public function broadcastOn()
        return new PrivateChannel('messages.'.$this->message->to);
    public function broadcastWith()
        return ["message" => $this->message];

ContactsController.php I use send fuction when I user send a message to a other user and after I broadcast

Im getting this in my terminal when a user send a message to other user but the other user doesn't receive noting until I refresh

λ laravel-echo-server start

L A R A V E L  E C H O  S E R V E R

version 1.6.1

⚠ Starting server in DEV mode...

✔  Running at localhost on port 6001
✔  Channels are ready.
✔  Listening for http events...
✔  Listening for redis events...

Server ready!

[15:28:39] - Preparing authentication request to: http://newchat.test
[15:28:39] - Sending auth request to: http://newchat.test/broadcasting/auth

[15:28:40] - hq3MFtdUmFgfBB7WAAAA authenticated for: private-messages.2
[15:28:40] - hq3MFtdUmFgfBB7WAAAA joined channel: private-messages.2
[15:28:59] - Preparing authentication request to: http://newchat.test
[15:28:59] - Sending auth request to: http://newchat.test/broadcasting/auth

[15:29:00] - hf8Ginp5is-fyZLGAAAC authenticated for: private-messages.1
[15:29:00] - hf8Ginp5is-fyZLGAAAC joined channel: private-messages.1
Channel: chatapp_database_private-messages.7
Event: App\Events\NewMessage
class ContactsController extends Controller
    public function get()
        $contacts = User::where('id', '!=' ,auth()->id())->get();
        return response()->json($contacts);

    public function getMessagesFor($id)
        $messages = Message::where('from', $id)->orWhere('to', $id)->get();
        return response()->json($messages);
    public function send(Request $request)
        $message = Message::create([
            'from' => auth()->id(),
            'to' => $request->contact_id,
            'text' => $request->text
        broadcast(new NewMessage($message));
        return response()->json($message);


Also Im using this command executed together with laravel-echo-server

 php artisan queue:listen --tries=1

Please sign in or create an account to participate in this conversation.