2013-05-23 10 views
11

私はノードjs 0.10.7:udp dgramのクラスタサポート?

var util = require("util"), 
    dgram = require("dgram"), 
    cluster = require('cluster'); 

var udp = dgram.createSocket("udp4"); 
var port = 1190; 

if (cluster.isMaster) { 
    for (i = 0; i < 2; i++) { 
    cluster.fork(); 
    } 
} else { 
    util.log("starting udp server on port " + port); 
    udp.on("error", function (error) { 
    util.log("failed to bind to UDP port - " + error) 
    }); 
    udp.bind(port); 
} 

アプリは以下の出力を直ちに終了https://github.com/joyent/node/issues/2194を述べたようにノードJSアプリケーション以下を実行しようとしている:

23 May 23:22:13 - starting udp server on port 1190 
23 May 23:22:13 - starting udp server on port 1190 

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: write ENOTSUP - cannot write to IPC channel. 
    at errnoException (child_process.js:980:11) 
    at ChildProcess.target.send (child_process.js:455:16) 
    at Worker.send (cluster.js:401:21) 
    at sendInternalMessage (cluster.js:394:10) 
    at handleResponse (cluster.js:177:5) 
    at respond (cluster.js:192:5) 
    at Object.messageHandler.queryServer (cluster.js:242:5) 
    at handleMessage (cluster.js:197:32) 
    at ChildProcess.EventEmitter.emit (events.js:117:20) 
    at handleMessage (child_process.js:318:10) 

誰もが何が起こっているか知っていますか?クラスタなしでこれを実行すると、すべて正常です。 クラスタはudpをサポートしていないようですか?

一部仕様:

Window 7 x64 
node js 0.10.7 
+0

私はまったく同じ問題(udpソケットで 'socket.send(...)'を実行しようとしていた)がうまく動いていて、正常に動作していますクラスタ環境なしで実行できます。あなたはその問題に新しい何かを持っていますか? – zaphod1984

+0

それはLinux上でうまく動作しているようですが、Windowsではうまく動作していないようです。 – zaphod1984

+0

https://gist.github.com/zaphod1984/5668274 – zaphod1984

答えて

1

それはv0.11.14で追加されたUDPクラスタリングのサポートがあなたの提供リンクで述べています。