先上代码再题理论
npm i express socket.io socket.io-client -S
const express = require("express");
const app = express();
var server = require("http").Server(app);
var io = require("socket.io")(server);
io.on("connection", function (socket) {
console.log("有人连接了");
});
server.listen(3007, (err) => {
!err ? console.log('127.0.0.1:3007~服务器启动成功'):''
});
vue 引入 npm i socket.io ,在mian.js导入socket.io
import Vue from 'vue'
import SocketIO from "vue-socket.io";
import ClientSocketIO from "socket.io-client";
Vue.use(
new SocketIO({
// debug: true,//开启调试模式
connection: ClientSocketIO.connect("http://127.0.0.1:3007", {
transports: ["websocket"],//默认使用的请求方式
autoConnect: false,//是否自动连接
}),
})
);
在需要的组件内开启连接
created() {
this.$socket.open();//开启连接
},
//socket与data同级,created同级 ,on监听在sockets中监听
sockets: {
connecting () {
console.log("Socket 正在连接");
},
disconnect () {
alert("Socket 断开");
},
connect_error () {
console.log("Socket 连接失败");
},
connect () {
console.log("Socket 连接成功");
this.OnImageSocket();
},
},
methods: {
OnImageSocket(){
//emit 向服务端 发消息
this.$socket.emit('emit_method','连接成功可以发送数据流')
},
}