Johan
Johan

Reputation: 35194

websocket server, storing the data

Lets say that i make a websocket server chat (node.js + socket.io). How would i store the chat messages, so that when a "new" user joins the chat, he will be seeing old chat messages, and not just the ones which has been sent while hes in the chat.

Should the data be stored in variables in the server? Something like:

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);
  });
});

Would it be a viable soultion for a more complex application, like a game for example?

Thanks

Upvotes: 4

Views: 7676

Answers (2)

ivan loire
ivan loire

Reputation: 711

Have a look at redis (redis.io), an in-memory database (disk persistent). Real fast, and your data will persist across server restarts. It also plays really really well with node.js.

Upvotes: 2

Darius Kucinskas
Darius Kucinskas

Reputation: 10661

If you really need to store chat history for new user I would suggest storing those in RDBMS or NoSQL storage. If you choose NoSQL one of options is Apache CouchDB™ (database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API). Here is free online book about it.

Upvotes: 3

Related Questions