Socket.io: Socket.io отключается с таймаутом ping случайным образом

Созданный на 28 нояб. 2016  ·  46Комментарии  ·  Источник: socketio/socket.io

у нас есть приложение чата в реальном времени, которое использует socket.io, node.js, mongodb и т. д. Чат работает очень хорошо, за исключением одной проблемы, а именно:

Некоторое время между разговорами пользователь отключается из-за тайм-аута ping . Как я проверил, проблем с подключением к Интернету не было, а также нет журналов попыток повторного подключения. Он напрямую отключается.

ОС - Ubuntu 14.04 / AWS EC2
версия socket.io на сервере - 1.6.0
Версия узла - v0.10.25

Сообщите нам, в чем может быть проблема. Также дайте мне знать, если вам понадобятся другие подробности

Самый полезный комментарий

Еще немного информации о моих проблемах.
Теперь я отправляю меньшие пакеты, теперь он не отключается при загрузке изображений, но он случайным образом выдает ошибки тайм-аута ping, это происходит совершенно случайно, поэтому теперь, когда пакеты меньше, трудно отладить причину.

@IIaakso, каковы рекомендуемые настройки тайм-аута ping, мои на данный момент:

Мой клиент js:

image

Настройки моего сервера:

image

все еще сталкивается с той же проблемой на "socket.io": "2.2.0",
"socket.io-client": "2.2.0",

image
socket.io- client: закрытие

Все 46 Комментарий

Вы пробовали прослушивать какие-либо сообщения об ошибках?
Вот статья о переполнении стека, которая содержит список общих событий, генерируемых сокетом.

http://stackoverflow.com/questions/24224287/list-of-socket-io-events

У меня такая же проблема, вы в этом разобрались?

@jitendrapawar умеете ли вы воспроизводить постоянно?

Нет, не постоянно, случайно отключается с пингом
тайм-аут.

10 января 2017 г., 19:50, "Damien Arrachequesne" [email protected]
написал:

@jitendrapawar https://github.com/jitendrapawar можете ли вы
воспроизводить последовательно?

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/socketio/socket.io/issues/2769#issuecomment-271586816 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ANP7JpiqxkTpZlc5CsayjIZf9GAqURLiks5rQ5OsgaJpZM4K9hrg
.

  • Вы отправляете двоичные данные? (https://github.com/socketio/socket.io/issues/2666)
  • Тайм-аут после заданной задержки (может быть связано с прокси-сервером)?
  • Связано ли это с конкретным браузером?
  • Правильно ли они повторно подключаются после тайм-аута проверки связи?

Здесь та же проблема. Никаких других ошибок не возникает. Кажется совершенно случайным.

Я отключаю сеть и сразу включаю ее. Примерно через 1 минуту на сервере возникает проблема «тайм-аут эхо-запроса».

  pingInterval: 25000,
  pingTimeout: 60000,

автор сказал, что: a client may have to wait up to pingTimeout + pingInterval ms before getting a disconnect event.
но я обнаружил, пока я F5 веб-страницу, я получаю новый socket.id , я отключился ???? Я обновляю свою страницу менее чем за 1 с,
я не могу; не нашел это как работать

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

Единственное, что я могу сузить до новой версии Google Chrome. Chrome 63, похоже, не имеет проблем, но пользователи 64 - это те, кто испытывает отключение, и я понятия не имею, почему

У меня такая же проблема, и я использую Chrome 63 @jstelz. Кто-нибудь нашел проблему или решение?

Это может быть связано с https://github.com/socketio/engine.io/issues/312#issuecomment -274367814.

@darrachequesne В моем случае это определенно связано с проблемой таймеров на стороне клиента,
Я вижу те же симптомы, что и другие, упомянутые выше, и их очень легко воспроизвести. Мне просто нужно запустить свое веб-приложение, убедиться, что оно подключается, и открыть другую вкладку, чтобы мое приложение работало в фоновом режиме. В конце концов, таймеры будут ограничены хромом, что приведет к тайм-аутам ping, что в конечном итоге заставит сервер отключить мое приложение, поскольку он думает, что приложение больше не работает.
Есть один возможный способ отключить это регулирование в chrome => https://www.tenforums.com/tutorials/80233-enable-disable-google-chrome-background-tab-throttling-windows.html
Но это не идеально, а иногда и неприменимо. Вероятно, единственным хорошим решением будет то, что также было сделано в primus lib: изменить направление сообщений ping / pong (https://github.com/primus/primus/pull/534)
Это кажется довольно большим рефакторингом в engine.io, затрагивающим как серверную, так и клиентскую библиотеки, хотя ...

@sirudog ну, это очень

У меня проблема с игрой, над которой я работаю.

Когда я установил сервер на
pingInterval: 1000, pingTimeout: 500
мой клиент отправляет примерно каждую секунду таймаут ping и повторно подключается.

Когда я установил сервер на
pingInterval: 500, pingTimeout: 1000
У меня нет таймаутов, но сервер никогда не обнаруживает отключения.

Для тех, кто страдает случайным таймаутом, попробуйте изменить "таймаут обновления транспорта" по умолчанию для engine.io (upgradeTimeout).

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

пример сервера:

// index.js
import io from 'socket.io';
import expressApp from './express/expressApp'; // express server
import socket from './socket/socket';

const port = 4000;
expressApp.set('port', process.env.Port || port);

const server = expressApp.listen(port, 'localhost');

const socketIo = io(server, {
  upgradeTimeout: 30000 // default value is 10000ms, try changing it to 20k or more
});

socket(socketIo);

// socket.js
export default socketIo =>
  socketIo.on('connection', socket => {
  //...return large amount of data
  }
}

Вы можете узнать больше о engine.io здесь:
https://github.com/socketio/engine.io

Привет

Для тех, кто страдает случайным таймаутом, попробуйте изменить "таймаут обновления транспорта" по умолчанию для engine.io (upgradeTimeout).

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

пример сервера:

// index.js
import io from 'socket.io';
import expressApp from './express/expressApp'; // express server
import socket from './socket/socket';

const port = 4000;
expressApp.set('port', process.env.Port || port);

const server = expressApp.listen(port, 'localhost');

const socketIo = io(server, {
  upgradeTimeout: 30000 // default value is 10000ms, try changing it to 20k or more
});

socket(socketIo);

// socket.js
export default socketIo =>
  socketIo.on('connection', socket => {
  //...return large amount of data
  }
}

Вы можете узнать больше о engine.io здесь:
https://github.com/socketio/engine.io

Привет,

Я пробовал, но все еще много отключений:

15: 10: 57,270 городского GUI INFO подключено
15: 10: 57,549 urban GUI INFO Клиент отключен: 6830bd090575426f9c53dec108702e04
15: 10: 59,70 urbanGUI INFO connected
15: 10: 59,342 urbanGUI INFO Клиент отключен: e2eb60d8a2aa445f94a17b6c6fc00e34
15: 11: 00,770 городскихGUI INFO подключено
15: 11: 01,41 urbanGUI INFO Клиент отключен: 62b2619d3b3a4c05aa9cfa0ad3df9524
15: 11: 02,655 городское GUI INFO подключено
15: 11: 02,940 urbanGUI INFO Клиент отключен: a421da49b04c46f38c1ae8c08b14e5db
15: 11: 04,153 городское GUI INFO подключено
15: 11: 04,421 urban GUI INFO Клиент отключен: b935f53d393c42488411e2b6c3e5961a
15: 11: 05,359 urbanGUI INFO подключен
15: 11: 05,630 urban GUI INFO Клиент отключен: ee8a42bb8b0e4bc8b9e813dd808c1dc3
15: 11: 07,232 городское GUI INFO подключено
15: 11: 07,513 urban GUI INFO Клиент отключен: 5c9804841d0a438e87536977c222c630
15: 11: 08,703 городского GUI INFO подключено
15: 11: 08,981 urbanGUI INFO Клиент отключен: a5dfcc72eb5c4445b09fb28153220961
15: 11: 10,601 городской GUI INFO подключен
15: 11: 10,893 urban GUI INFO Клиент отключен: 394e409a10fa41a8aa7e7c747b4ea606
15: 11: 12,87 городской GUI INFO подключен
15: 11: 12,360 urbanGUI INFO Клиент отключен: e83bacd1338d4306b8eaccc9597f7a0b
15: 11: 13,384 городских
15: 11: 13,661 urbanGUI INFO Клиент отключен: 52cf363b5d26431a8b9b6459551aedcd
15: 11: 14,389 городской GUI INFO подключен
15: 11: 14,664 urbanGUI INFO Клиент отключен: f254c71fbd374cac9bd3d4161e53456f
15: 11: 15,995 городского GUI INFO подключено
15: 11: 16,275 urbanGUI INFO Клиент отключен: ec7d67d7b4a04019b3496dcf40e0d41a
15: 11: 17,709 городских
15: 11: 17,992 urban GUI INFO Клиент отключен: 68a9ea7e54f34cc3be9f9395b19943b7
15: 11: 18,720 городское GUI INFO подключено
15: 11: 19,1 urbanGUI INFO Клиент отключен: e17cdcf179d9482dbf4f6befc2e0db47
15: 11: 19,808 городских
15: 11: 20,91 urbanGUI INFO Клиент отключен: 8f262794c9fc40bb90aa37f9fe20db80
15: 11: 21,430 городское GUI INFO подключено
15: 11: 21,705 urban GUI INFO Клиент отключен: 2769a86f041c422ea7806ce11177b88f
15: 11: 23,95 городской GUI INFO подключен
15: 11: 23,368 urban GUI INFO Клиент отключен: 3306fd1f321740e1a80d005291e1a801
15: 11: 24,662 городских
15: 11: 24,943 urban GUI INFO Клиент отключен: ac6afdc9952440fc8d4846548adc50f2
15: 11: 25,774 городских
15: 11: 26,58 urbanGUI INFO Клиент отключен: 5b270718206d49aeba597361bbff8be2
15: 11: 27,673 городской GUI INFO подключен
15: 11: 27,952 urban GUI INFO Клиент отключен: ce9bba31d7494d19800c24cd68aedb2c
15: 11: 29,477 городских
15: 11: 29,753 urbanGUI INFO Клиент отключен: a29d9cd1903c422f9606a801e4685c2c
15: 11: 30,684 urban GUI INFO Клиент отключен: 48924b51684e46008558c7577c1f6269
15: 11: 31,59 urbanGUI INFO connected
15: 11: 31,325 urban GUI INFO Клиент отключен: f2e6c04f38a94617bb6ac8a331cde224
15: 11: 32,858 городских
15: 11: 33,141 urbanGUI INFO Клиент отключен: 139db6786631476ea1561b669a0b2431
15: 11: 34,558 городских
15: 11: 34,844 urban GUI INFO Клиент отключен: 83940d8f836e48a5918e14794e19c0c8
15: 11: 35,547 городских
15: 11: 35,815 urban GUI INFO Клиент отключен: 5f85ca0cc1254b74b19d41f5c321ac8a
15: 11: 37,316 городское GUI INFO подключено
15: 11: 37,593 urban GUI INFO Клиент отключен: 7554f2dd4fd54bad9b95300c1b0998ca
15: 11: 39,195 городских
15: 11: 39,476 urbanGUI INFO Клиент отключен: 8fead9b5e8e148e9956778b7a91e875b
15: 11: 40,481 городской GUI INFO подключен
15: 11: 40,767 urban GUI INFO Клиент отключен: 2579464ed45b418491bda2fc60b8bcc6
15: 11: 41,488 городского GUI INFO подключено
15: 11: 41,761 urbanGUI INFO Клиент отключен: b8b25fec44584b288d12c297b21c72bd
15: 11: 42,686 городской GUI INFO подключен
15: 11: 42,966 urban GUI INFO Клиент отключен: 0f780d9ebc294e47bf3f5184c38c8836
15: 11: 44,388 городских
15: 11: 44,668 urban GUI INFO Клиент отключен: 14999c3f00314bb285bbde4501e3cecb
15: 11: 45,581 городской GUI INFO подключен
15: 11: 45,849 urban GUI INFO Клиент отключен: ada765125a374b7fbb4174d7d97bb901
15: 11: 47,95 городской GUI INFO подключен
15: 11: 48,328 городских
15: 11: 48,602 urban GUI INFO объединенная комната: 6e2f8d8f-d835-478b-12a3-70ba109603a1
15: 12: 15,248 городских
15: 12: 15,523 urban GUI INFO объединенная комната: 6e2f8d8f-d835-478b-12a3-70ba109603a1
15: 12: 41,806 городской GUI INFO подключен
15: 12: 42,77 urbanGUI INFO Клиент отключен: 1bfd592fe1274c4db14d37ee6e144726
15: 12: 43,582 городских
15: 12: 43,855 urban GUI INFO Клиент отключен: 63a0a6abdb3240f598af9e5947520362
15: 12: 44,988 городских
15: 12: 45,256 urban GUI INFO Клиент отключен: 930e46874fdd48888e6f2abac0e7f066

@kllr
Измените событие отключения, чтобы показать причину:

socket.on('disconnect', reason => {
            console.log(`reason: ${reason}`);
});

Еще вы можете попробовать сбросить апгрейд транспорта.

const socketIo = io(server, {
  transports: ['websocket'],
  allowUpgrades: false
});

У меня такая же проблема с socket.io 2.2. Через некоторое время он случайным образом тормозит и начинает переподключение. Ошибка: ping timeout .

Есть ли способ убедиться, что соединение стабильно и никогда не прерывается? Мябе какой-то браузер или что-то в этом роде?

Привет,
Та же проблема, я использую socket.io 2.2.0, у кого-то есть решение для этого?

Привет

такая же проблема происходит со мной, я на socket.io 2.2.0, и когда на моем веб-сайте, когда клиент отправляет изображение в base64 на сервер, а изображение велико, тогда это приводит к тому, что клиент-отправитель изображения получает ошибку тайм-аута ping и отключает клиента. пожалуйста, дайте нам знать, если кто-нибудь найдет какое-либо исправление.

Можете ли вы, ребята, попробовать установить pingTimeout выше, чем pingInterval, как предлагается здесь:
https://github.com/socketio/socket.io/issues/3259#issuecomment -474523271

Сервер:

const socket = io(server, {
  pingTimeout: 30000
  // ...other props
});

Клиент:

const socket = io(`${config.server}`, {
    pingTimeout: 30000
    // ...other props
  });

По умолчанию pingInterval составляет 25000 мс.
Если это по-прежнему не работает, попробуйте только через websocket:

transports: ['websocket'],
allowUpgrades: false,
pingTimeout: 30000

Существует одно недокументированное (?) Проблемное поведение в отношении тайм-аутов: если сервер отправляет большой пакет, для передачи которого требуется больше времени, чем интервал тайм-аута, это приводит к тайм-ауту и ​​отключению. Единственный способ исправить это - убедиться, что вы отправляете только относительно небольшие пакеты. Это проблема, поскольку это означает, что вам нужно уделять (слишком) много внимания логике вашего сервера, чтобы данные всегда находились в установленных пределах - и - поскольку скорость соединения неизвестна, это трудно исправить полностью.

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

Еще немного информации о моих проблемах.
Теперь я отправляю меньшие пакеты, теперь он не отключается при загрузке изображений, но он случайным образом выдает ошибки тайм-аута ping, это происходит совершенно случайно, поэтому теперь, когда пакеты меньше, трудно отладить причину.

@IIaakso, каковы рекомендуемые настройки тайм-аута ping, мои на данный момент:

Мой клиент js:

image

Настройки моего сервера:

image

все еще сталкивается с той же проблемой на "socket.io": "2.2.0",
"socket.io-client": "2.2.0",

image
socket.io- client: закрытие

Та же проблема, что и @FaizanZahid . Он просто случайно отключается с таймаутом ping ...

Та же проблема, и моя установка действительно не отличается от вашей (forceNew: правда, это самая важная часть imo)

Я обновляюсь с античного socket.io 1.x с настройкой node 6.x до socket.io 2.2 и node 12.x как на отправляющем, так и на принимающем серверах теста.

До обновления я мог запустить около 12 тысяч одновременных подключений с исходного сервера (с запущенным клиентом) на целевой сервер (с запущенным io-сервером).

Очевидные системные ограничения, ограничения брандмауэра и т. Д. Были проверены и настроены до обновления, поэтому и «отправляющий», и «принимающий» серверы не должны быть причиной проблем или ограничений.

Но после обновления до socket.io 2.2 я получаю случайные таймауты ping при запуске около 2,5 тысяч одновременных подключений ...

* изменить: в моем тестовом приложении данные не передаются, поэтому проблема не в длине данных или типе контента. клиенты подключаются только к серверу, который выполняет настраиваемую аутентификацию для клиентов, и если аутентификация успешна, клиенты ждут события сервера.

Поэтому мы будем очень признательны за любое понимание возможных причин;)

Из тестов, которые я выполнил на своей установке (FreeBSD 11.2, узел 12.3.x), вот результаты, которые я могу наблюдать и воспроизводить:

версия socket.io-client | версия socket.io | результат
2.2 | 2.2 | случайные таймауты ping после примерно 2000 подключений
1.3.5 | 2.2 | отлично работает с 4500 одновременными подключениями
2.2 | 1.3.5 | невозможно соединиться
1.3.5 | 1.3.5 | отлично работает с 4500 одновременными подключениями

Таким образом, проблема, похоже, находится в клиентском разделе socket-io-client 2.2 или, по крайней мере, в клиентской ветке 2.x ...

Любое решение для этого ?? В моем случае это не проблема с количеством подключений, он просто случайным образом отключается после нескольких часов бездействия с ошибкой тайм-аута ping ...

У меня похожая проблема, известна ли причина?

У меня такая же проблема. Думаю, для меня это действительно странная проблема.

Я использую Socket.io в своем приложении React Native. на IOS работает. Но на Android он отключается через 30 мс. Вот журнал:

  engine:ws closing +30s
  socket.io:client client close with reason ping timeout +30s
  socket.io:socket closing socket - reason ping timeout +30s
  socket.io-parser encoding packet {"type":2,"data":["disUser",0],"nsp":"/"} +30s
  socket.io-parser encoded {"type":2,"data":["disUser",0],"nsp":"/"} as 2["disUser",0] +0ms
user disconnected: dxYGo3l7Dab-1qBfAAAA
reason: ping timeout

"socket.io": "^2.2.0"
"socket.io-client": "^2.2.0"

Как я могу исправить это на моей стороне Android?

@berksafran Я сталкиваюсь с тем же самым только в Android, не могли бы вы сообщить мне, как вы это исправили?

Что ж, к сожалению, я не смог исправить эту проблему, но я увидел, что эта проблема только в процессе разработки. Когда вы выпускаете приложение и пытаетесь использовать react-native run-android --variant=release , ваш сервер socket.io будет работать правильно.

Другое решение, которое я нашел, - это загрузка вашего сервера socket.io на любой облачный сервер. (heroku, digitalocean и т. д.) После загрузки вы должны установить свой адрес подключения на URL-адрес облачного сервера. Я пробовал, и теперь он работает.

Если у вас возникнут вопросы, вы можете написать мне здесь.

Удачи.

Кто-нибудь найдет решение? Обновлено: я протестировал после развертывания приложения, оно работает.

Всем привет,
Я разрабатываю приложение с использованием socket.io.
Для клиента я использую socket.io-client 2.3.0
Для сервера я использую socket.io версии 2.3.0

Мой сервер размещен на героку. И я сталкиваюсь с этими случайными таймаутами пинга. Когда я открываю приложение на мобильном устройстве, таймауты ping возникают еще чаще. Любое решение, которое я могу попробовать? Спасибо

@ sukalyansen123 Давным- давно после отладки я заметил, что он не может обновить транспорт и время ожидания истекает. Попробуйте только с веб-сокетами:

const socketIo = io(server, {
  transports: ['websocket'],
  allowUpgrades: false
});

@ sukalyansen123 - У меня была аналогичная проблема, и мне показалось, что установка тайм-аутов по умолчанию явно помогла.

СТОРОНА СЕРВЕРА:

ДО:
let io = require('socket.io')(server, { transports: ['websocket'], allowUpgrades: false });

ПОСЛЕ:
`
let io = require ('socket.io') (сервер,
{
транспорты: ['websocket'],
allowUpgrades: false,
pingInterval: 25000, // по умолчанию - 25000
pingTimeout: 60000, // по умолчанию - 60000

});
`

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

Вот как выглядит моя клиентская сторона, если это помогает - я подключаюсь только по протоколу websocket
`
this.socket = io (serverURL,
{
транспорты: ['websocket'],
autoConnect: true

        });

`
Надеюсь, это поможет

Вот как выглядит моя клиентская сторона, если это помогает - я подключаюсь только по протоколу websocket
`
this.socket = io (serverURL,
{
транспорты: ['websocket'],
autoConnect: true

        });

`
Надеюсь, это поможет

Спасибо еще раз. Также хотел узнать, как вы обрабатываете событие отключения на стороне клиента.

Вот как выглядит моя клиентская сторона, если это помогает - я подключаюсь только по протоколу websocket
`
this.socket = io (serverURL,
{
транспорты: ['websocket'],
autoConnect: true

        });

`
Надеюсь, это поможет

Кажется, это немного помогает. Однако сейчас сокеты отключаются, если какое-то время бездействовать с закрытым транспортом. Будет ли отправка сердцебиения через равные промежутки времени хорошим решением?

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

Попробуйте этот код на стороне сервера

var fs = require('fs');
var pkey = fs.readFileSync('/etc/ssl/private/ssl.key'); //Replace the path of your SSL key
var pcert = fs.readFileSync('/etc/ssl/certs/ssl.crt');//Replace the path of your SSL cert
var options = {
  key: pkey,
  cert: pcert
};

var app = require('https').createServer(options);

var io = require('socket.io')(app, {'pingTimeout': 180000, 'pingInterval': 25000});

Здесь важен pingInterval. Держите его на низком уровне, я пробовал разные значения и обнаружил, что 25 секунд - это хорошо, чтобы сокет продолжал пинговать до истечения времени ожидания. Основная проблема заключается в том, что если в течение 60 секунд нет пинг / понга, он отключится и попытается автоматически подключиться. Также я обнаружил, что pingTimeout на стороне сервера и тайм-аут, а на стороне клиента не может помочь отключить сокет за 60 секунд. Это происходит из-за хрома последней версии 83. *

Как было предложено выше , мы вернем механизм ping / pong в Socket.IO v3: https://github.com/socketio/engine.io-protocol#difference -between-v3-and-v4.

Я тоже начал сталкиваться с той же проблемой. Я использую версию socket.io версии 2.0.4 и начал получать ping timeout проблему после реализации сокетов с несколькими узлами с использованием socket.io-redis . Но он отлично работает с одним узлом без Redis. Может ли кто-нибудь помочь мне по любой возможной причине?

Наш проект только что обновил узел до версии 12. После этого обновления мы также получаем отключение из-за тайм-аута ping: | Вот список случаев, когда происходили отключения:

11:06:59
11:08:19 + 80-е
11:10:39 +140 с
11:14:39 + 240 с
11:15:59 + 80с
11:20:59 + 300 с
11:22:19 + 80с
11:23:19 + 60с
11:24:39 + 80с
11:28:59 + 260с

Наши настройки:
TimeOut: 30 с
Интервал: 20 сек.
Задержка повторного подключения: 10 с

Привет! была такая же проблема. Socket.io версии 2.3.0 (одинаковые версии на клиенте и сервере).
Моя проблема была в сервере. После того, как я проверил, сколько времени требуется серверу для подготовки ответа, отправляемого через сокет, после 2 дней поисков я обнаружил проблему. Это был метод, для которого время выполнения увеличивалось линейно, и когда он начинал занимать 1 с + для выполнения, сервер просто не мог ответить на пинг клиента, а затем клиент выдавал закрытие соединения и повторную попытку подключения, и отсюда остальное вы знаете.
Итак, в заключение я хочу сказать, что это не проблема socket.io, а чаще всего проблема сервера.
Надеюсь это поможет.

Подбор версий для сервера и клиента решает проблему для меня. Я тестировал с V 3.0.4 и 2.3.0

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

doughsay picture doughsay  ·  4Комментарии

chfeizy picture chfeizy  ·  3Комментарии

MyMomSaysIAmSpecial picture MyMomSaysIAmSpecial  ·  4Комментарии

gCurtisCT picture gCurtisCT  ·  4Комментарии

MichaelJCole picture MichaelJCole  ·  3Комментарии