使用 socket.io-redis 保留聊天记录

Keep chat history with socket.io-redis

我用 socket.io 和 redis 聊天。我的问题是,如何从插座室检索所有发射?聊天正在运行,只是刷新所有丢失的消息。以下是我管理 Redis 存储的方式。

var redis = require('redis').createClient;
var adapter = require('socket.io-redis');
var pub = redis(port, host, {});
var sub = redis(port, host, { detect_buffers: true});
io.adapter(adapter({ pubClient: pub, subClient: sub }));

http://www.ibm.com/developerworks/library/wa-bluemix-html5chat/index.html 那些文章解决了这个问题。第 4 步包含答案。代码:

var redis = require('redis');
var redisClient = redis.createClient(port, host);
redisClient.lpush('messages', JSON.stringify(data)); // push into redis
redisClient.lrange('messages', 0, 99, function(err, reply) {
  //reply contains all messages
});