美文网首页
websocket 带参数连接的获取

websocket 带参数连接的获取

作者: sujeking | 来源:发表于2019-03-20 17:29 被阅读0次

    本来以为自己对websocket 还是掌握一些,但是突然发现别人写的服务器在连接的时候就可以获得token,自己还是太菜了,所以整理一个,主要是新的websocket在监听connection的时候可以多一个req参数 那么在url中就能可以拿到连接带过来的参数了,学无止境。nodejs威武

    var _  = require('lodash');
    var qs = require('qs');
    const WebSocket = require('ws');
    
    const wss = new WebSocket.Server({ port: 9999 });
    
    let list = [];
    wss.on('connection', function connection(ws,req) { //用于获取连接时候的参数 eg: ws://ip:port/path?token=xxxxxx
      let url = req.url; 
      console.log('url is ' + url); // "/path?token=xxxxxx"
      let prarms = qs.parse(_.split(url,'?')[1]); // token=xxxxxx
      console.log('url is ' + JSON.stringify(prarms));// {token:xxxxxxx}
    
      list.push(ws);
    
      ws.on('message', function incoming(message) {
        console.log('收到数据' + message);
        ws.send('server get message' + message);
        console.log('数据发送成功');
      });
    
      ws.on('error', function (error) {
        console.log('错误' + error);
      });
    
      ws.on('open', function (e) {
        ws.send('open');
      });
    
      ws.on('close', function (e) {
        _.pull(list, ws);
        console.log('在线人数' + list.length);
      })
    
    });
    
    

    相关文章

      网友评论

          本文标题:websocket 带参数连接的获取

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