Соединение websocket закрывается автоматически - PullRequest
0 голосов
/ 27 апреля 2020

Я развернул сервер websocket на heroku, и все работает хорошо, но если по прошествии определенного времени между сервером и клиентом нет передачи, соединение закрывается. я не знаю, кто закрывает сервер соединений или клиент и как решить эту проблему.

вот мой 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');
}

1 Ответ

0 голосов
/ 27 апреля 2020

Я обнаружил, что сервер решений закрывает соединение из-за неактивности со стороны клиента. для этого мы должны пропинговать сервер через определенное время, которое может сильно зависеть от сервера.

Вот как я решил, если кому-то нужно.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...