Я использую nuxt/laravel API с laravel-echo-server и socket.io-client.
Когда я использую это так:
import Echo from 'laravel-echo'
if (process.client) {
window.io = require('socket.io-client')
window.Echo = new Echo({
broadcaster: 'socket.io',
host: 'http://seekers-backend.com:6001',
auth: { headers: { Authorization: 'Bearer-token' } }
})
}
А потом используйте window.Echo.private().listen().... работает отлично..
Но когда я пытаюсь объявить его в свойстве данных, я получаю сообщение об ошибке, потому что оно отображается на стороне сервера... Как я могу использовать socket.io-client при рендеринге на стороне сервера или как я могу объявить его на стороне клиента, так как мне нужен доступ к getters для токена носителя .






Думаю, я нашел способ, который работает по неизвестной причине: D
импортировать эхо из 'laravel-echo'
if (process.client) {
window.io = require('socket.io-client')
}
А потом
mounted() {
let echo = new Echo({
broadcaster: 'socket.io',
host: 'http://seekers-backend.com:6001',
auth: { headers: { Authorization: this.token } }
})
echo.private('user.' + this.$auth.user.id)
.listen('MessageEvent', (e) => {
// Do stuff
})
}