37

I am trying to make my app app connect to pusher on a private channel.

But I am getting the following error:

pusher.js?b3eb:593 POST http://localhost:8000/broadcasting/auth 404 (Not Found)

What maybe the cause of the error and how to resolve it.

4
  • 1
    You need to set up an HTTP server running on localhost:8000 which can handle requests to /broadcasting/auth. The Pusher server libraries provide helper functions for handling these requests. Commented Jan 18, 2017 at 11:13
  • 1
    Have you resolved the isssue? I have both BroadcastServiceProvider classes uncommented in th config/app. Have cleared compiled services , config cache and route cache. Still doesn't work. Commented Dec 30, 2017 at 17:01
  • @The_ehT use public channel and use auth middleware on it Commented Dec 30, 2017 at 17:07
  • I had the same error and got stuck on it for about 2 hours. Turns out it was my local host i set up a virtual host in my xammp vhosts file and the error disappeared. Commented Nov 16, 2018 at 10:34

7 Answers 7

123

Look in config/app.php if you have uncommented

App\Providers\BroadcastServiceProvider::class,

Sign up to request clarification or add additional context in comments.

2 Comments

MC laravel doc creator never mentioned this.
I suppose this isn't necessary anymore with Laravel 11+?
25

There are two Service Providers with Same name but different namespace in config/app.php

Illuminate\Broadcasting\BroadcastServiceProvider::class, App\Providers\BroadcastServiceProvider::class, 

So uncomment both of them. It will work.

Comments

21

Hope your base url is wrong try to hardcore your base url like below

window.Echo = new Echo({ authEndpoint : 'http://*******/public/broadcasting/auth', broadcaster: 'pusher', key: '********', cluster: '***', encrypted: true }); 

Comments

15

Complete These Steps

1) In config/app.php uncomment this line-

App\Providers\BroadcastServiceProvider::class, 

2) If above not work and still you've got the error - then I'm sure you are not logged in. Just login to your account and check(because it's your private broadcast).

It'll solve your issue and since you can also pass additional auth parameters as your need in app\Providers\BroadcastServiceProvider.php

Broadcast::routes(['middleware' => 'auth:admin']); 

1 Comment

"Logged in" to? Laravel Auth system? What if I am using token based, JWT?
7

Laravel 11:

check bootstrap/app.php. It should contain channels param with correct path to the file:

return Application::configure(basePath: dirname(__DIR__)) ->withRouting( web: __DIR__.'/../routes/web.php', api: __DIR__.'/../routes/api.php', commands: __DIR__.'/../routes/console.php', //this line: channels: __DIR__.'/../routes/channels.php', health: '/up', ) 

2 Comments

Thanks! This was my issue. I'm currently upgrading from Laravel 10 to 11.
This was the root cause for me too. Surprising, since it wasn't mentioned in the Broadcasting documentation at all. I thought it would be handled by php artisan install:broadcasting
3

UnComment this line in config/app.php :

App\Providers\BroadcastServiceProvider::class, 

and sure cache is clear with :

php artisan config:cache 

Done...

Comments

1

Are you missing csrf_token() in your blade file?

You can add in the meta tag

<meta name="csrf-token" content="{{ csrf_token() }}"> 

Check out your BroadcastServiceProvider.php and you should include your channel routes in the boot method.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.