Как использовать sticky-сессию с кластером в экспресс-узле js

Я создал кластер в зависимости от приложения со ссылкой на этот вопрос

Но я начал сталкиваться с проблемами при обработке сеансов. Как использовать Sticky-сеанс в экспресс-JS с кластером.

Я пытался использовать этот модуль npm. Но это привело к той же ситуации. как исправить эту проблему сессии.

sticky(http.createServer(app).listen(app.get('port'), function () {
    console.log('Express server listening on port ' + app.get('port'));
}););

2 ответа

Решение

Наконец, найдено решение, попробуйте этот код. Он поддерживает липкость, а также использует весь процесс [процесс] для других клиентов. Вы можете использовать сеанс экспресс кластера с помощью следующего кода. Вы можете получить сессию здесь https://github.com/indutny/sticky-session

var http = require('http');
var cluster = require('cluster'); // Only required if you want the worker id
var sticky = require('sticky-session');
var express = require('express');
var app = express();

app.get('/', function (req, res) {
    console.log('worker: ' + cluster.worker.id);
    res.send('Hello World!');
});


var server = http.createServer(app);
    sticky.listen(server,3000);

Это не имеет ничего общего с Express.

Вы просто забыли listen() для функции sticky.

sticky(
  http.createServer(app).listen(app.get('port'), function () {
      console.log('Express server listening on port ' + app.get('port'));
  });
).listen(app.get('port'),function() {
  console.log('Sticky server started on port' + app.get('port'));
});
Другие вопросы по тегам