Ich gehe davon aus, dass Sie npm mit einem dieser Snippets richtig installiert haben (ich habe das oberste verwendet).
Redis
Ich würde Redis als Datenbank verwenden. Zum einen ist es sehr schnell , hartnäckig. Sie müssen es installieren, aber das ist wirklich einfach.
make
Redis-cli
Als nächstes solltest du selbst mit Redis spielen. Ich würde Ihnen raten, sich dieses hervorragende Tutorial von Simon Willison anzusehen . Er und ich raten Ihnen auch, einfach mit dem redis-cli
zu spielen , um ein Gefühl für die Datenbank zu bekommen.
Redis Client
Schließlich müssen Sie einen Redis-Client installieren. Ich würde Ihnen raten, mranneys node_redis zu verwenden, da ich denke, dass dies der schnellste und am aktivsten entwickelte Client ist.
Installation
npm install hiredis redis
Einfaches Beispiel, enthalten als 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();
});
Sitzungen in der Datenbank speichern
Außerdem hat der Autor von Express eine Bibliothek erstellt, um Ihre Sitzungen mit Redis zu verwalten.
Installation:
npm install connect-redis
Beispiel:
var connect = require('connect')
, RedisStore = require('connect-redis');
connect.createServer(
connect.cookieDecoder(),
// 5 minutes
connect.session({ store: new RedisStore({ maxAge: 300000 }) })
);
Speichern von Nachrichten in der Datenbank
Ich denke, ich würde dafür ein sortiertes Set verwenden . Speichern Sie die Nachrichten mit ZADD
und rufen Sie sie mit ZRANK
, ZRANGEBYSCORE
.
Socket.io
Wenn Sie versuchen, einen einfachen Chat zu erstellen, würde ich Ihnen raten, sich socket.io anzuschauen.
socket.io zielt darauf ab, Echtzeit-Apps in jedem Browser und Mobilgerät zu ermöglichen und die Unterschiede zwischen den verschiedenen Transportmechanismen zu verwischen.
Ich habe auch einen Chat mit socket.io erstellt, den ich auf stackoverflow gepostet habe . Das Hinzufügen von Persistenz + Authentifizierung sollte ein Kinderspiel sein.