让我说我做一个websocket服务器聊天(node.js + socket.io)。我如何存储聊天消息,以便当“新”用户加入聊天时,他将看到旧的聊天消息,而不仅仅是聊天时他们发送的聊天消息。
数据是否应存储在服务器中的变量中?类似的东西:
var io = require('socket.io').listen(80);
var saveData = { };
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
对于更复杂的应用程序,例如游戏,它会是一个可行的灵魂吗?
由于
答案 0 :(得分:2)
如果您确实需要为新用户存储聊天记录,我建议将其存储在RDBMS或NoSQL存储中。如果选择NoSQL,其中一个选项是Apache CouchDB™(数据库使用JSON表示文档,JavaScript表示MapReduce查询,常规HTTP表示API)。这是免费的在线book。
答案 1 :(得分:2)
查看redis(redis.io),一个内存数据库(磁盘持久性)。真正快速,您的数据将在服务器重启后持续存在。它也非常适合node.js。