node.js – 如何获取(Express的)sessionID的websocket连接

栏目: Node.js · 发布时间: 7年前

内容简介:http://stackoverflow.com/questions/11541835/how-can-i-get-expresss-sessionid-for-a-websocket-connection

我正在Express Express运行的同一端口上使用WebSockets npm install ws.

我想从刚刚制作并升级到WebSocket的HTTP连接中提取相关联的“sessionID”.

// start express listening
server.listen(conf.server.port, conf.server.host);

var WebSocketServer = require('ws').Server
  , wss = new WebSocketServer({server: server});

wss.on('connection', function(ws) {
    var sessionID = // how do I get this?
    ws.on('message', function(message) {
        console.log('received: %s', message);
    });
    ws.send('something');
});

如何才能做到这一点?

(我目前通过在页面中发送sessionID来解决问题,但这是丑陋的.)

>解析cookie

>获取会话ID

>获取会话数据

var express = require('express');
var parseCookie = express.cookieParser();
var MemoryStore = express.session.MemoryStore;

var store = new MemoryStore();

app.configure(function() {
    app.use(express.session({ store: store, secret: '123456', key: 'sid' }));
});

wss.on('connection', function(ws) {
    parseCookie(ws.upgradeReq, null, function(err) {
        var sessionID = ws.upgradeReq.cookies['sid'];
        store.get(sessionID, function(err, session) {
            // session
        });
    }); 

    ws.on('message', function(message) {
        console.log('received: %s', message);
    });
    ws.send('something');
});

http://stackoverflow.com/questions/11541835/how-can-i-get-expresss-sessionid-for-a-websocket-connection


以上所述就是小编给大家介绍的《node.js – 如何获取(Express的)sessionID的websocket连接》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

有的放矢

有的放矢

Nathan Furr、Paul Ahlstrom / 七印部落 / 华中科技大学出版社 / 2014-4-20 / 38.00元

创业需要大笔资金吗?自信的人适合创业吗?好点子究竟来自哪里?《有的放矢:NISI创业指南》的两位作者拥有多年创业与投资经验,收集了大量的一手案例和资料,提出有的放矢创业流程,帮助创业者规避创业风险,提高创业成功率。一起来看看 《有的放矢》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试