当我没有在bootstrap.js
.
作曲家.json
"require": {
"laravel/framework": "5.4.*",
"pusher/pusher-php-server": "~2.6",
},
包.json
"dependencies": {
"laravel-echo": "^1.3.2",
"pusher-js": "^4.1.0",
}
引导程序.js
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'app-key',
cluster: 'eu',
encrypted: true
});
广播.php
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => 'eu',
'encrypted' => true
],
],
我在我的本地主机上,并尝试了多个教程和许多变体,但没有一个能解决问题。应用程序正确加载了所有 get api 路由,但是当我尝试登录时出现 500 错误。
我也在使用 Vue 和 VueRouter,以防有任何影响。
编辑
似乎有东西干扰了用 axios 发送的 CsrfToken。如果我重新排列我的 bootstrap.js 文件,以便在 axios 之前导入 Echo:
import Echo from 'laravel-echo';
etc.
window.axios = require('axios');
发布路线完美无缺,但是当我通过 axios 发布路线提交它们时,我无法收听任何事件(如果我通过 Artisan 控制台命令提交事件,它工作正常,我可以收听响应并将其输出到控制台)。
如果我dd('test')
在事件构造函数中,后路由输出test
. 如果我dd('test')
在 broadcastOn 方法中,post 路由不会命中这个函数。