11

前述のように、次のノード js アプリケーションを実行しようとしています https://github.com/joyent/node/issues/2194

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);
}

アプリはすぐに終了し、次の出力が表示されます。

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
4

1 に答える 1

1

あなたが提供したリンクには、UDP クラスタリングのサポートが v0.11.14 で追加されたと書かれています。node.js のバージョンを更新する必要があるだけである可能性があります。

于 2014-10-23T23:09:42.740 に答える