我将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。
发布于 2019-07-17 04:00:47
我想我是因为未知的原因找到了它的工作方式:
从'laravel- Echo‘导入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
})
}https://stackoverflow.com/questions/57064013
复制相似问题