我正在使用私人频道发送广播通知。我正在使用 Pusher 和 laravel-echo。我都取消评论了
Illuminate\Broadcasting\BroadcastServiceProvider::class,
'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
在 config/app.php.
我正在使用网络路由并使用“auth:sanctum”中间件。
BroadcastServiceProvider.php
public function boot()
{
Broadcast::routes();
//Broadcast::routes(['auth:sanctum']);
require base_path('routes/channels.php');
}
两种方式我都尝试过。
bootstap.js
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
forceTLS: true,
});
在请求标头中,
Authorization: Bearer null
。
我尝试过添加授权令牌。但仍然出现此错误。
channels.php
Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
我在我的推送帐户中收到 API 消息。但是在vue中无法监听。下面是vue文件中的代码。
mounted() {
window.Echo.private("App.Model.User." +this.userId ).notification(
(notification) => {
console.log(notification);
}
);
},
看起来您的问题可能已经在类似的帖子中得到了回答:POST http://localhost:8000/broadcasting/auth 403(禁止)
希望这对您有帮助,即使已经过去很长时间了。