реагировать нативно - веб-сокет на событие close не вызывается в ios - PullRequest
0 голосов
/ 22 сентября 2019

в нашем собственном приложении реагирования мы используем веб-сокеты, иногда, когда у нас происходит аварийное закрытие (веб-сокет: закрыть 1006 (аварийное закрытие): неожиданный EOF)

событие onclose / onerror не вызывается сразу, но через 20-60 минут (только на ios).Обратите внимание, что эта проблема появляется только в фоновом режиме.

это приводит к тому, что наше приложение не знает, что соединение закрыто, и оно не инициирует новое соединение

мы пытались прослушивать сеть с помощью wiresharkно проблема возникает только иногда, и нам не удавалось поймать ее в течение последних 24 часов.

Как мы можем обнаружить такое событие?

наш код:

initiateConnection = (url) => {
  this.conn = new WebSocket(url);
  this.conn.onopen = this._handleConnectionOpen;
  this.conn.onerror = this._handleConnectionError;
  this.conn.onclose = this._handleConnectionClose;
  this.conn.onmessage = this._handleMessage;
};

_handleConnectionClose = data => {
  Log.info('WS - connection closed', data.reason);
};

_handleConnectionError = data => {
  Log.info('WS - connection closed', data.reason);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...