Socket.ioの例すべてこのパターン最も効率的な方法のハンドラ
io.sockets.on("connection", function(mySocket){
mySocket.on("my message", function(myData){
...
});
});
に従うすべての接続のための新しいコールバック関数を作成するだろうと私には思えます。
function myMessageHandler(data){
...
}
io.sockets.on("connection", function(mySocket){
mySocket.on("my message", myMessageHandler);
});
かさえ、この:すべてのソケットが同じ方法でメッセージに応答すると仮定すると、このようなすべてのソケットに対して一度ハンドラを定義するために、より多くのメモリ効率的ではないでしょう
io.sockets.on("my message", function(mySocket, myData){
...
});
もしそうなら、なぜSocket.ioはメモリを浪費する習慣を勧めますか?私たちはソケットのステートフルな変数を "接続"コールバックの終了の中に保存したいと思っていますか?
「時期尚早の最適化」として知られているそのような不安な形態の心配に夢中になります。オーバーヘッドの差によってアプリケーションが作成または中断された場合、node.jsは誤ったプラットフォームの選択です。 – ebohlman
私のアプリケーションロジックは、数十のソケットメッセージで実行され、何千もの同時接続に対応しています。各接続が何千ものコールバック行を複製すると、それは私にとって大きな最適な見落としに見えます – arkanciscan