0

スマートフォンをブザーとして使用する「最速の指先」の Node.JS アプリを作成しています。アプリに入ってくる回答を処理するために Socket.IO を使用するつもりですが、ラウンドの最後に比較するためにデータを保存する最良の方法がわかりません。

私の最初の考えは、Redis は RAM ベースであり、高速であると想定しているため、着信ソケット イベントごとに回答データを挿入することです。ただし、各回答を配列に順番にプッシュする方がよいでしょうか? これは、着信ソケット イベントの間持続しますか?

簡潔に聞こえることを願っています!

4

1 に答える 1

3

配列の方が高速であることは間違いありません。これは、サポートを計画しているユーザーの数と、スケーリングをどのように計画しているかによって異なります。誰でも「ゲーム」を作成できる「サービス」を作成しようとしていて、プラットフォームで数十万の「ゲーム」をサポートすることを計画している場合は、Web 層とバズをスケーリングする必要がある場合があるため、Redis を使用してください。ある Web サーバーが別の Web サーバーに表示されません。

ただし、一度に 1 つのゲームをサポートするためにこれを 1 回限りのこととして行う場合、おそらく友人が Wi-Fi 経由でラップトップに接続している場合でも (ただし、インターネット経由の小さな Heroku サーバーでも問題なく動作します)、私は. d 配列を使用します。外部 DB (Redis と同じくらい速いものでも) と通信すると、複雑さが増します。Node.js はイベント化され、シングルスレッドであるため、競合状態について心配する必要はありません。あなたは書くことができます

var firstPresser;
socket.on('press', function (presser) {
    if (!firstPresser) {
        firstPresser = presser;
        // return "You pressed first"
    } else {
        // return "You didn't press first"
    }
});

私の擬似コードを許してください。私は特にsocket.ioに精通していませんが、あなたは要点を理解していると思います.

于 2013-03-12T19:44:51.907 に答える