2017-04-18 22 views
0

ノードサーバーがec2インスタンス上で実行されています。ユーザーが何らかのアクションを実行すると、私はイベントを発行しています。このソケットは、サーバーI/O操作をブロックしますか?ソケットIOエミットサーバーブロック

たとえば、1瞬間に10000人のユーザーが接続されています.1つのアクションで、接続されているすべてのユーザーにメッセージを送信する必要があります。これは、他の操作のネットワークI/Oをブロックしますか?

+0

あなたが話していることのコード、または最小限の表現を表示できますか?あなたは、 'Promise.each'や' Promise.all'のような何らかのプロミスディスパッチャーでこれを包み込み、多数の呼び出しでプロセスが邪魔にならないようにすることができます。 – tadman

+0

私はこのようなio.emit(emitMatchLobbyID、{data: 'update'})のようなものを放出しています。しかし、私はこの放出を聞いているシステムに約10,000人のユーザーが接続しています。それで、サーバー上の他の操作がブロックされますか? –

+0

10,000コールはどれくらいかかりますか? Sergeyが言っているように、Node.jsはシングルスレッドなので、小さなチャンクに分割しない限り、Nodeプロセスを妨害します。 – tadman

答えて

0

もちろんです。 Nodejsはシングルスレッドです。

関連する問題