У меня есть приложение, в котором мне нужно ограничить количество активных подключений, и самый логичный способ сделать это для меня - просто подсчитать количество активных сеансов.Узел Express Session Count
Я искал «подсчет сеанса узла», но не нашел ничего полезного.
Возможно ли получить количество открытых сеансов в узле express?
Альтернативой было бы сохранить IP-адрес каждого подключенного клиента, но проблема с этим методом заключается в том, что ip-адрес нужно будет вручную удалить из хранилища данных.
Я думаю, если я использую redis в качестве хранилища данных, я мог бы использовать expire для достижения чего-то подобного.
set ip.192.168.42.1 true
expire ip.192.168.42.1 60
ttl ip.192.168.42.1
etc etc
Или есть лучший способ?
EDIT
Я попытался предложение использовать MemoryStore, но я не могу показаться, чтобы выяснить, как использовать его ??
var express = require("express");
var MemoryStore = express.session.MemoryStore;
MemoryStore.prototype.length = function(fn) {
fn(null, Object.keys(this.sessions).length);
};
MemoryStore.length(function(len) {
console.log('sessions:'+len);
});
примечание стороны, если вы размещаете на сервере Unix/Linux вы можете легко ограничьте это на системном уровне. –