美文网首页
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