美文网首页
2020-07-17 记录一次node搭建socket.io服

2020-07-17 记录一次node搭建socket.io服

作者: 今汐猎人 | 来源:发表于2020-07-22 14:04 被阅读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"))
     
      }
    

    相关文章

      网友评论

          本文标题:2020-07-17 记录一次node搭建socket.io服

          本文链接:https://www.haomeiwen.com/subject/bcqghktx.html