Supongo que tiene npm instalado de la manera correcta usando uno de estos fragmentos (usé el de arriba).
Redis
Usaría redis como base de datos. Por un lado, es muy rápido y persistente. Necesitas instalarlo, pero eso es realmente fácil.
make
Redis-cli
A continuación, deberías jugar con redis tú mismo. Te aconsejo que consultes este excelente tutorial de Simon Willison . Él y yo también te aconsejamos que juegues con el redis-cli
para tener una idea de la base de datos.
Cliente de Redis
Finalmente necesitas instalar un cliente redis. Le aconsejaría que utilice node_redis de mranney porque creo que es el cliente más rápido y desarrollado de forma más activa.
Instalación
npm install hiredis redis
Ejemplo simple, incluido como example.js:
var redis = require("redis"),
client = redis.createClient();
client.on("error", function (err) {
console.log("Error " + err);
});
client.set("string key", "string val", redis.print);
client.hset("hash key", "hashtest 1", "some value", redis.print);
client.hset(["hash key", "hashtest 2", "some other value"], redis.print);
client.hkeys("hash key", function (err, replies) {
console.log(replies.length + " replies:");
replies.forEach(function (reply, i) {
console.log(" " + i + ": " + reply);
});
client.quit();
});
Almacenar sesiones en la base de datos
Además, el autor de express ha creado una biblioteca para manejar sus sesiones usando redis.
Instalación:
npm install connect-redis
Ejemplo:
var connect = require('connect')
, RedisStore = require('connect-redis');
connect.createServer(
connect.cookieDecoder(),
connect.session({ store: new RedisStore({ maxAge: 300000 }) })
);
Almacenar mensajes en la base de datos
Creo que usaría un conjunto ordenado para esto. Almacenar los mensajes usando ZADD
y recuperarlos usando ZRANK
, ZRANGEBYSCORE
.
Socket.io
Finalmente, si está intentando crear un chat simple, le aconsejo que eche un vistazo a socket.io.
socket.io tiene como objetivo hacer posibles las aplicaciones en tiempo real en todos los navegadores y dispositivos móviles, difuminando las diferencias entre los diferentes mecanismos de transporte.
También creé un chat usando socket.io que publiqué en stackoverflow . Agregar persistencia + autenticación debería ser muy sencillo.