イベントをブロードキャストしようとすると、不明な auth_key エラーが発生します。他の投稿で述べたようにクラスターを変更しようとしましたが、機能しませんでした。app.php でブロードキャスト サービス プロバイダーのコメントを外しました。
.env
PUSHER_APP_ID=******
PUSHER_APP_KEY=******
PUSHER_APP_SECRET=******
構成/ブロードキャスト
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
],
],
\app\Events\MessagePosted.php
public function broadcastOn() {
return new PresenceChannel('chatroom');
}
\resources\assets\js\bootstrap.js
window.axios = require('axios');
window.axios.defaults.headers.common = {
'X-Requested-With': 'XMLHttpRequest'
};
import Echo from "laravel-echo"
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: '*****',
cluster: 'ap2',
encrypted: true
});
\resources\assets\js\app.js
const app = new Vue({
el: '#app',
data: {
messages: [],
usersInRoom: []
},
methods: {
addMessage(message) {
// Add to existing messages
this.messages.push(message);
// Persist to the database etc
axios.post('/messages', message).then(response => {
// Do whatever;
})
}
},
created() {
axios.get('/messages').then(response => {
this.messages = response.data;
});
Echo.join('chatroom')
.here((users) => {
this.usersInRoom = users;
})
.joining((user) => {
this.usersInRoom.push(user);
})
.leaving((user) => {
this.usersInRoom = this.usersInRoom.filter(u => u != user)
})
.listen('MessagePosted', (e) => {
this.messages.push({
message: e.message.message,
user: e.user
});
});
}
});