【问题标题】:socket.io don't run within Azure Emulatorsocket.io 不在 Azure 模拟器中运行
【发布时间】:2012-11-14 16:39:28
【问题描述】:

我尝试使用 Node.js 创建一个 Azure WorkerRole。这项工作没有任何问题。如果我添加 socket.io,如果我在模拟器中运行,Node.js 服务器不会启动。如果我用我的应用程序 JavaScript 文件启动 node.exe,它就可以工作。

首先我想,我没有复制 socket.io 模块,所以在 Emulator Node.js 中无法加载 socket.io 模块。但是我全部复制,如果缺少模块,显示的错误消息不是那个。

控制台上的错误信息如下所示:

...\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);

【问题讨论】:

    标签: node.js azure socket.io


    【解决方案1】:

    使用var port = parseInt(process.env.port) || 12345。根据the codelisten 的第一个参数只有在其类型为number 时才被视为端口,但您从环境中得到的是string

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多