2020-07-17 记录一次node搭建socket.io服
2020-07-22 本文已影响0人
今汐猎人
在网上找了一些服务端代码
服务端
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
});
//我记录客户端的对象
var sockets = {};
var online = 0;
io.on('connection',function(socket) {
**
* 发送订单数据 //我的业务逻辑方法,可忽略
*/
socket.on('sendOrderMsg',function(obj){
var target = sockets[obj];
if(target != undefined){
target.emit("re_emit","ffffffffffffffffffffkkkkkkkkkkkkk")
}
})
/**
* 连接口注册存入socket信息
*/
socket.on("register",function(obj){
sockets[obj] = socket;
});
socket.on("disconnect",function(obj){
})
});
/**
*监听3001端口
*/
http.listen(3001, function(){
console.log('listening on *:3001');
});
VUE端
全局引入socket,然后连接
//全局引入
import VueSocketIO from 'vue-socket.io'
Vue.use(new VueSocketIO({
debug: true,
// 服务器端地址
connection: 'http://socket.xxxxx.cn',
vuex: {
}
}))
在需要使用的地方,调用相应的方法
我是在mounted方法中调用监听回调事件与注册事件,这与我的业务逻辑有关
mounted() {
//调用监听回调事件,这与我的业务逻辑有关
this.sockets.listener.subscribe('re_emit', (data) => {
let audio = new Audio()
audio.src = orderAudio
audio.play();
})
//注册事件。这与我的业务逻辑有关
this.$socket.emit("register",localStorage.getItem("userId"))
}