Tôi giả sử bạn đã cài đặt npm đúng cách bằng cách sử dụng một trong những đoạn mã này (tôi đã sử dụng đoạn mã trên cùng).
Redis
Tôi sẽ sử dụng redis làm cơ sở dữ liệu. Đối với một nó là thực sự nhanh chóng , bền bỉ. Bạn cần phải cài đặt nó, nhưng điều đó thực sự dễ dàng.
make
Redis-cli
Tiếp theo, bạn nên tự chơi với redis. Tôi khuyên bạn nên xem hướng dẫn tuyệt vời này của Simon Willison . Anh ấy và tôi cũng khuyên bạn chỉ nên chơi với redis-cli
để có được cảm giác về cơ sở dữ liệu.
Khách hàng Redis
Cuối cùng, bạn cần cài đặt một ứng dụng khách redis. Tôi khuyên bạn nên sử dụng node_redis của mranney vì tôi nghĩ nó là ứng dụng khách được phát triển tích cực và nhanh nhất.
Cài đặt
npm install hiredis redis
Ví dụ đơn giản, bao gồm như 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();
});
Lưu trữ các phiên trong cơ sở dữ liệu
Ngoài ra, tác giả của express đã tạo một thư viện để xử lý các phiên của bạn bằng redis.
Cài đặt:
npm install connect-redis
Thí dụ:
var connect = require('connect')
, RedisStore = require('connect-redis');
connect.createServer(
connect.cookieDecoder(),
connect.session({ store: new RedisStore({ maxAge: 300000 }) })
);
Lưu trữ tin nhắn trong cơ sở dữ liệu
Tôi nghĩ rằng tôi sẽ sử dụng một tập hợp được sắp xếp cho việc này. Lưu trữ các thông điệp sử dụng ZADD
và lấy chúng bằng ZRANK
, ZRANGEBYSCORE
.
Socket.io
Cuối cùng nếu bạn đang cố gắng tạo một cuộc trò chuyện đơn giản, tôi khuyên bạn nên xem qua socket.io.
socket.io nhằm mục đích làm cho các ứng dụng thời gian thực có thể thực hiện được trên mọi trình duyệt và thiết bị di động, xóa mờ sự khác biệt giữa các cơ chế vận chuyển khác nhau.
Tôi cũng đã tạo một cuộc trò chuyện bằng cách sử dụng socket.io mà tôi đã đăng trên stackoverflow . Thêm tính năng bền bỉ + xác thực sẽ dễ dàng.