我使用npm在vue-cli项目上安装了socket.io。然后像这样使用它:
import socketio from 'socket.io';
import VueSocketIO from 'vue-socket.io';
export const SocketInstance = socketio(MY_URL);
Vue.use(VueSocketIO, SocketInstance)但是当我运行这个应用程序时,我得到了;
Uncaught TypeError: exists is not a function
控制台出错。如果应用程序不运行的话。
有人能帮忙吗?
发布于 2021-06-08 13:21:40
如果我引用的是正式的vue-socket.io文档,基本用法如下(对您的示例而言):
import Vue from 'vue'
import VueSocketIO from 'vue-socket.io'
Vue.use(new VueSocketIO({
connection: MY_URL,
}));而且,如果必须将socket-io实例传递给vue-socket.io,则必须这样做:
import Vue from 'vue'
import VueSocketIO from 'vue-socket.io'
import SocketIO from 'socket.io-client'
const SocketInstance = SocketIO(MY_URL);
Vue.use(new VueSocketIO({
connection: SocketInstance,
}));但是,在这种情况下,包不是socket.io,而是socket.io-client。这可能是问题的根源。
编辑:
对于身份验证,如果我引用socket.io文档:https://socket.io/docs/v4/client-initialization/#Socket-options和vue-socket.io的用法,以下是解决方案:
没有套接字-io-客户端:
import Vue from 'vue'
import VueSocketIO from 'vue-socket.io'
Vue.use(new VueSocketIO({
connection: MY_URL,
options: {
// authentication options
auth : {
token : 'qwerty',
}
},
}));使用socket.io-client:
import Vue from 'vue'
import VueSocketIO from 'vue-socket.io'
import SocketIO from 'socket.io-client'
const SocketInstance = SocketIO(MY_URL, {
// authentication options
auth : {
token : 'qwerty',
}
});
Vue.use(new VueSocketIO({
connection: SocketInstance,
}));https://stackoverflow.com/questions/67887295
复制相似问题