我尝试使用 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);