gpt4 book ai didi

node.js - socket.io 不在 Azure 模拟器中运行

转载 作者:行者123 更新时间:2023-12-03 06:04:41 24 4
gpt4 key购买 nike

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

首先我想,我没有复制 socket.io 模块,因此在模拟器中 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);

最佳答案

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

关于node.js - socket.io 不在 Azure 模拟器中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13374901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com