2017-07-11 23 views
-1

nodejs、express、socketio、およびmysqlを使用して簡単なチャットアプリケーションを作成しようとしています。私の質問は、私のnodejsサーバーのmysqlデータベースから新しく接続されたクライアントアプリケーションに問い合わせたチャット履歴データを送信する最も効率的な方法は何ですか?クエリ結果を一度に送信し、クライアント側でループを実行するか、nodejsサーバでループを実行して、クエリ結果をクライアントに1つずつ送信する必要がありますか?socketioを使用してnodejsサーバーからクライアントにデータを効率的に送信

+0

実際のコードに問題がある場合は、何かお試しください。一般的には*「ベスト」*は主観的でアプリに依存する可能性があります – charlietfl

答えて

1

「効率的」とは、データを送信する帯域幅が最も小さい場合は、1つの大きなデータチャンクを送信するほうが効率的です。小さいデータをたくさん送信することになります各送信)。配列の各項目が履歴のステップであるJSONエンコードされた配列を送信するだけで済みます。実際に大量のデータをより管理しやすいものに分割したい場合には、もちろん制限があります。したがって、合計データが数百MBの場合、すべてのデータを一度に送信したくない場合があります。しかし、チャット履歴の総数が数十MB未満であれば、一度に送信するのが最善の方法です(目標をすべて送信することが望ましい場合)。

何を送信しているかに応じて、繰り返しの多いプロパティ名を持つオブジェクトの単純なJSON配列は、送信するのが最も効率的な形式ではありませんが、常に実験の価値はありますが、違いがあるかどうか。あなたが送信しているデータを正確に見ていないと、それ以上はコメントできません。

将来的には、特定のコードに関する特定の質問をして、送信しているコードとデータの両方を表示すると、より意味のある回答が得られます。次に、あなたの状況が何であるかを推測するのではなく、あなたの特定の状況に対する答えをターゲットにすることができます。理論上の質問は、あなたの実際のコード/データに関する具体的な質問としてここでもうまく機能しません。何らかの理由で、あなたの実際のコード/データなしで質問のジェネリックフォームを求める本能があるようですが、それは通常、間違ったやり方であり、有意義で具体的な回答を提供するのは難しいです。

+0

@ezekiel - これはあなたの質問に答えましたか? – jfriend00

関連する問題