2015-11-12 2 views
1

Мои поздравления. Я хотел бы спросить, возможно ли управлять сеансами в Node.js и как. Я имею в виду именно Node.js, а не выразить.Node.js сеансы

О приложении. Я использую статический сервер узла + сервер websocket, на front-end у меня есть простой SPA. И только один момент заставляет меня задуматься о сеансах: когда пользователь обновляет страницу, он получает новый сокет. Так что мне нужно связать «статус входа» с сеансом, а не сокетом.

Спасибо.

Обновление: Я нашел модуль npm «msession», это выглядит просто и должно выполнять эту работу. Но сейчас одна проблема. Я должен получить объекты запроса и ответа из сокета.

Запрос мне удалось получить так:

let req = socket.upgradeReq; 

Я попробовал этот вариант для ответа, но, как и ожидалось, это не сработало:

let res = {writeHead: {}}; 

Все предложения на объект ответа?

ответ

0

На самом деле это blog-post сделал мой день.

В заключение. Вот что я получил в результате:

const http = require('http'); 
const staticServer = require('node-static'); 
const WebSocketServer = new require('ws'); 
const session = require('sesh/lib/core').magicSession(); 

// WebSocket-server 
const webSocketServer = new WebSocketServer.Server({port: 8081}); 

// Create a node-static server instance to serve the './public' folder 
const fileFolder = new staticServer.Server('./public'); 

http.createServer(function (request, response) {    
    GLOBAL.session = request.session; 
    request.addListener('end', function() { 
    fileFolder.serve(request, response); 
    }).resume(); 

}).listen(1337); 

webSocketServer.on('connection', function(ws) { 
    if(typeof(ws.session) === "undefined") 
    ws.session = GLOBAL.session; 
    /* Any logic here */ 
}); 

console.log("Static server created") 

Таким образом, он работает гуманный из сокетов приложений на основе, которая имеет статический файловый сервер и сеансы. Может быть, кто-то найдет это полезное.

гуманного требует:

npm install --save node-static && npm install --save ws && npm install --save sesh 
0

Может быть, этот плагин поможет вам node-session, или это один node-client-sessions

+0

Node-сессия выглядит именно то, что мне нужно, но somewhy я получаю сообщение об ошибке во время установки. Узловые-клиент-сеансы являются экспресс-ориентированными. – Lazyexpert

+0

Какая ошибка у вас возникла? 'npm install node-session' работает хорошо. –

+0

'Сбой сборки npm WARN install: deasync [email protected] install: node ./build.js npm WARN install: deasync Статус выхода 1' В любом случае я нашел, как использовать сеансы node-client в чистой среде узла , – Lazyexpert