4

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

たとえばゲームのような、より複雑なアプリケーションの実行可能なソリューションでしょうか?

ありがとう

4

2 に答える 2

3

メモリ内データベース (永続ディスク)である redis ( redis.io ) を見てください。非常に高速で、データはサーバーの再起動後も維持されます。また、node.js との相性も抜群です。

于 2012-08-13T19:47:19.257 に答える
2

新しいユーザーのチャット履歴を本当に保存する必要がある場合は、それらをRDBMSまたはNoSQLストレージに保存することをお勧めします。NoSQLを選択した場合、オプションの1つはApacheCouchDB™</a>(ドキュメントにJSON、MapReduceクエリにJavaScript、APIに通常のHTTPを使用するデータベース)です。これはそれについての無料のオンラインです。

于 2012-08-13T18:28:56.357 に答える