sql >> Base de Datos >  >> RDS >> Mysql

Mantener a un usuario conectado con nodeJS

Debe comprender la diferencia entre un servidor express y un servidor nativo de NodeJS, aquí mi enlace servidor nodejs de comparación vs servidor express

Entonces puedes hacer:

var app = express();
var server = http.createServer(app);

Esto le permite tener todavía la funcionalidad de bajo nivel con NodeJS.

Por lo tanto, si no desea utilizar módulos o marcos existentes, puede crear su propio administrador de sesiones:

  1. Uso de cookies
  2. utilizando IP/AU
  3. usando socket

La mejor manera sería primero implementarlo con socket , por ejemplo:

server.on('connection', function (socket) {
  socket.id = id;
});

o

server.on('request', function (req, res) {
  req.connection.id = id; // The socket can also be accessed at request.connection.
});

Entonces, solo necesita implementar un middleware que verifique la identificación.

Si desea evitar la session prediction , session sidejacking , etc. necesita combinar cookies, ip, socket y sus ideas para que sea más seguro para su aplicación.

Una vez que haya hecho su administrador de sesiones, puede elegir dónde almacenar las sesiones, en un simple object , en redis , en mongodb , en mysql ... (express usa MemoryStore por defecto, pero tal vez no ahora)