0

Node.jsを使用してAzureWorkerRoleを作成しようとしています。この作品は問題ありません。socket.ioを追加すると、エミュレーターで実行するとNode.jsサーバーが起動しません。アプリケーションのJavaScriptファイルを使用してnode.exeを起動すると、機能します。

最初に、socket.ioモジュールをコピーしないので、エミュレーター内でNode.jsがsocket.ioモジュールをロードできないと思いました。しかし、私はすべてをコピーし、モジュールが欠落している場合、表示されるエラーメッセージは1つではありません。

コンソールのエラーメッセージは次のようになります。

...\node_modules\socket.io\lib\Manager.js:104
Server.on<'error', function(err) {
TypeError: Object 12345 has no method 'on'

私のNode.jsコード:

var port = process.env.port || 12345;
var io = require('socket.io').listen(port);
// start socket
io.sockets.on('connection', function (socket) {
    socket.emit('news', { hello: 'world' });

    // create new push session
    socket.on('cid', function (cid) {
        console.log(cid);
    });
});
console.log("Server running at port %d", port);
4

1 に答える 1

2

を使用しvar port = parseInt(process.env.port) || 12345ます。コードによると、toの最初のパラメーターは、listenそのタイプが。の場合にのみポートとして扱われnumberますが、環境から取得するのはstring。です。

于 2012-11-14T08:39:28.093 に答える