http://localhost:8000/broadcasting/auth 404(未找到)错误

32

我正在尝试让我的应用程序连接到Pusher私有频道。

但是我收到以下错误消息:

pusher.js?b3eb:593 POST http://localhost:8000/broadcasting/auth 404 (未找到)

可能导致此错误的原因是什么,如何解决它。


1
你需要在 localhost:8000 上设置一个 HTTP 服务器,它可以处理对 /broadcasting/auth 的请求。Pusher 服务器库提供了处理这些请求的辅助函数。 - Will Sewell
1
你解决了这个问题吗?我已经取消注释config/app中的两个 BroadcastServiceProvider 类。我已清除编译的服务、配置缓存和路由缓存,但仍然不起作用。 - The_ehT
@The_ehT 在公共频道上使用身份验证中间件。 - YaSh Chaudhary
我遇到了同样的错误,卡在那里大约两个小时。结果发现是我本地主机的问题,我在我的XAMPP虚拟主机文件中设置了一个虚拟主机,错误就消失了。 - Jelly Bean
6个回答

109

如果您取消注释了 App\Providers\BroadcastServiceProvider::class,,请查看 config/app.php 文件。


2
节省了我的时间。谢谢。 - Rakibul Islam
1
MC Laravel文档创建者从未提到过这一点。 - Shahid Karimi
1
也节省了我的时间! - Nur Uddin

23

在config/app.php中有两个服务提供者具有相同的名称但不同的命名空间。

Illuminate\Broadcasting\BroadcastServiceProvider::class,

App\Providers\BroadcastServiceProvider::class,

所以把它们都取消注释。这样它就会起作用。


19

希望你的基础网址不正确,请尝试像下面这样进行硬编码:

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

13

完成以下步骤

1)config/app.php中取消注释此行-

App\Providers\BroadcastServiceProvider::class,

2) 如果上述方法无效而且你仍然遇到错误 - 那么我确定你没有登录。只需登录到您的帐户并检查(因为这是您的私人广播)。

这将解决您的问题,由于您还可以根据需要在app\Providers\BroadcastServiceProvider.php中传递其他授权参数。

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

7
"Logged in" to? Laravel 认证系统?如果我使用基于令牌的 JWT 呢? 翻译:使用 Laravel 认证系统时,“Logged in”是指登录成功。如果使用基于令牌的JWT,也需要登录成功才能访问受保护的资源。 - gthuo

2

UnComment this line in config/app.php :

App\Providers\BroadcastServiceProvider::class,

and sure cache is clear with :

php artisan config:cache

完成...


1

你的Blade文件中是否缺少csrf_token()?

你可以添加meta标签

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

请查看您的BroadcastServiceProvider.php文件,并在其中的boot方法中包含您的频道路由。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接