按照文档,一顿操作猛如虎之后,websocket是连上了,但是一看网络请求,发现使用的是http
协议,可我明明填的是wss://
地址啊:
Vue.use(new VueSocketIO({
debug: true,
connection: 'wss://test.com',
vuex: {
store,
actionPrefix: 'SOCKET_',
mutationPrefix: 'SOCKET_'
},
options: { path: "/my-app/" }
}))
因为vue-socket.io
其实是基于socket.io-client
又做了一层封装,所以配置参数啥的基本一样,那就果断去Socket.IO官网找找答案
翻到这里,它说socket.io可以用以下两种方式起服务:HTTP long-polling
和 WebSocket
。
啥?long-polling?长轮询?还是默认值?
看来找到原因了!
解决办法:
去掉长轮询,只使用webcoket
Vue.use(new VueSocketIO({
debug: true,
connection: 'wss://test.com',
vuex: {
store,
actionPrefix: 'SOCKET_',
mutationPrefix: 'SOCKET_'
},
options: {
path: "/my-app/",
transports: ["websocket"] //**加上这句**
}
}))
搞定!