使用nodejs在heroku上自动关闭套接字连接

Posted

技术标签:

【中文标题】使用nodejs在heroku上自动关闭套接字连接【英文标题】:Socket connection closed automatically on heroku with nodejs 【发布时间】:2017-10-29 11:25:21 【问题描述】:

我正在做一个物联网项目。在heroku 上使用nodejs,我在heroku 上创建了一个服务器。然后我的物联网设备将尝试建立连接。但是当我尝试它时,连接会自动关闭。下面是我正在使用的脚本。它在本地工作。

net = require('net');
var clients = [];
net.createServer(function (socket) 
  socket.name = socket.remoteAddress + ":" + socket.remotePort
  clients.push(socket);
  broadcast(socket.name + " joined the chat\n", socket);
  socket.on('data', function (data) 
    broadcast(socket.name + "> " + data, socket);
  );
  socket.on('end', function () 
    clients.splice(clients.indexOf(socket), 1);
    broadcast(socket.name + " left the chat.\n");
  );
  function broadcast(message, sender) 
   clients.forEach(function (client) 
      if (client === sender) return;
      client.write(message);
    );
    process.stdout.write(message)
  
).listen(process.env.PORT || 8899);
console.log("Chat server running at port 8899\n");

请帮忙。

【问题讨论】:

【参考方案1】:

我也面临同样的问题,但我认为问题可能是this

根据这篇文章

如果在 55 秒窗口内没有从测功机接收到数据,则 连接终止并记录 H15 错误。

同样,如果在 55 秒内没有收到来自客户端的数据 窗口连接终止并记录 H28 错误。

【讨论】:

以上是关于使用nodejs在heroku上自动关闭套接字连接的主要内容,如果未能解决你的问题,请参考以下文章

垃圾收集导致连接的套接字延迟(NodeJS 服务器)

nodejs websocket检测断开连接的套接字

Python / Django项目上的Heroku / Redis连接错误

Firebase 登录弹出窗口在 Heroku 上自动关闭

MongoDB Atlas 连接在 Heroku for NodeJS 上不起作用

Firebase Angular 应用程序未连接 Heroku 上的 h NodeJS 应用程序