admin管理员组

文章数量:1335356

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 plex application, like a game for example?

Thanks

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 plex application, like a game for example?

Thanks

Share Improve this question asked Aug 13, 2012 at 18:17 JohanJohan 35.2k62 gold badges187 silver badges305 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 3

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.

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.

本文标签: javascriptwebsocket serverstoring the dataStack Overflow