Socket IO client should be globally available 错误
Socket IO client should be globally available error
我正在使用 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
以获得 Bearer 令牌。
我想我找到了未知原因的方法 :D
从 '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
})
}
我正在使用 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
以获得 Bearer 令牌。
我想我找到了未知原因的方法 :D
从 'laravel-echo'
导入 Echoif (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
})
}