websocket连接正在自动关闭

Posted

技术标签:

【中文标题】websocket连接正在自动关闭【英文标题】:websocket connection is closing automatically 【发布时间】:2020-08-10 09:31:56 【问题描述】:

我已经在 heroku 上部署了 websocket 服务器,一切正常,但如果服务器和客户端之间在一段时间后没有传输,则连接关闭。我不知道是谁在关闭连接服务器或客户端以及如何解决这个问题。

这是我的 node.js 客户端代码-

const Websocket = require('ws');

var ws = new Websocket('https://secure-mountain-02060.herokuapp.com/');

ws.onmessage = function(event)
console.log(event.data);


ws.onclose = function()
console.log('server close');

【问题讨论】:

快速谷歌搜索发现:webSocket timeouts on Heroku. 【参考方案1】:

我发现解决方案服务器由于客户端不活动而正在关闭连接。 因为我们必须在特定时间后 ping 服务器,该时间可能非常取决于服务器。

如果有人需要,我就是这样解决的。

const Websocket = require('ws');

var  ws = new Websocket('https://secure-mountain-02060.herokuapp.com/');

function noop() 

ws.onmessage = function(event)
  console.log(event.data);


ws.onclose = function()
  console.log('server close');


const ping = function() 
  ws.ping(noop);


setInterval(ping, 30000);

【讨论】:

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

websocket连接不上、报错、自动关闭,求解

Websocket 连接尝试失败,返回“连接:升级,关闭”。

socket 如果不关闭会自动关闭吗?为啥要心跳连接?

怎样判定socket连接已经关闭

IOCP怎么正确关闭socket

为啥用 pywebsocket 创建的 websocket 会自动关闭?