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"))
 
  }
上一篇下一篇

猜你喜欢

热点阅读