2012-04-30 7 views
5

私はソケットに耳を傾けsocket.ioサーバーを持っていますか? 2つのクライアントがmyEventイベントを発行すると、両方のクライアントで同時に動作しますか?またはそれは次々に処理されるでしょうか?Socket.IOはマルチスレッドですか?マルチスレッドでの作業このコードは</p> <pre><code>io.sockets.on('connection', function(socket){ socket.on('myEvent', function(data){ socket.emit('eventReceived', { status: 1 }); }); }); </code></pre> <p>です:

多くの感謝!

+1

コアで実験的なクラスタモジュールが利用可能ではありません、それはマルチスレッドではありませんがあります。 Node.jsは、単一のスレッドイベントループを使用します。参照してください[この回答](http://stackoverflow.com/questions/9362823/why-is-a-function-and-a-callback-non-blocking-in-node-js/9363071#9363071)私のさらなる説明。 –

+0

Node.jsがマルチスレッド化されていない場合は、Socket.IOもマルチスレッド化されていないことを意味しますか? – udidu

+1

正確に。メッセージングのための分散バックエンドを実行することで拡張することができます。 –

答えて

1

Node.jsには、npmで利用可能なパッケージを含めて、マルチスレッド化されていません。

http://nodejs.org/docs/v0.10.2/api/cluster.html

+0

には[redis store](https://github.com/LearnBoost/socket.io/blob/master/lib/stores/redis.js)が組み込まれています。 Node.jsが単一のイベントループを持っているからといって、フードの下の非同期プロセスがシーンの裏にマルチスレッド化されているわけではありません。多くはそうだから。この点に関する1つの問題を扱う記事があります:https://www.future-processing.pl/blog/on-problems-with-threads-in-node-js/ – user1588877

関連する問題