Ade*_*owe 1 laravel-echo pusher-js vuejs3
在这里问同样的问题后我仍然遇到这个问题:从身份验证端点返回的 JSON 无效,但状态代码为 200,没有响应。我查看了类似的问题并遵循了建议:将广播驱动程序设置为“pusher”,在 app.config 文件中取消注释“App/BroadcastServiceProvider”类,在 .env 文件中将调试模式设置为 false 等。我有还查看了 Pusher 文档,但问题对我来说仍未解决。
我已经通过添加“/broadcasting/auth/”身份验证端点和标头更新了之前的尝试,但仍然出现相同的错误。但我现在可以看到 302 重定向到身份验证路由,然后 302 重定向到登录路由,然后到仪表板,在 Laravel Telescope 上有 200 响应,这是我以前没有看到的。因此,这对我来说添加身份验证端点应该可以解决问题,但事实并非如此。
我还尝试设置和使用“/ Pusher / auth /”身份验证端点路由和控制器,但它给了我“无法加载资源:服务器响应状态为405(不允许方法)”以及“错误” :无法从 auth 端点检索 auth 字符串 - 从 /pusher/auth 收到状态:405,但不是之前的无效 json 错误。我通过向控制器发送“get”请求得到此信息,但收到带有“的 500 内部服务器错误” post'请求。我真的不知道哪个是正确的。
这是我的 bootstrap.js 文件:
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
// Enable pusher logging - don't include this in production
Pusher.logToConsole = true;
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
forceTLS: true,
authEndpoint: '/broadcasting/auth',
//authEndpoint: '/pusher/auth',
auth: {
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}',
}
}
});
Run Code Online (Sandbox Code Playgroud)
这是我创建的一个 PusherController:
public function pusherAuth(Request $request)
{
$key = getenv('PUSHER_APP_KEY');
$secret = getenv('PUSHER_APP_SECRET');
$app_id = getenv('PUSHER_APP_ID');
$pusher = new Pusher($key, $secret, $app_id);
$auth = $pusher->socket_auth($_GET('channel_name'), $_GET('socket_id'));
return response($auth, 200);
}
Run Code Online (Sandbox Code Playgroud)
我现在知道我的 vue 前端文件应该接收并显示广播检查,并且该问题与解决此推送器订阅错误有关。
任何帮助将不胜感激。
| 归档时间: |
|
| 查看次数: |
3286 次 |
| 最近记录: |