Здравствуйте. Я использую nginx 1.2.1 вместе с модулем tcp-proxy-module. Соединения проксируются на nodejs, используется socket.io . Клиент - флэш приложение, соединение через бинарный сокет. В библиотеке socket.io при отсоединении клиента срабатывает событие "disconnect". Я не сильно разбираюсь в тонкостях протоколов, но попытаюсь объяснить. Так вот, если из флэш приложения мы закрываем соединение - socket.close() - по-видимому отправляется пакет который говорит "пока" и соединение закрывается, событие disconnect сразу отрабатывает. Напомню, всё это происходит через nginx. Если у клиента пропало интернет соединение - пакета на закрытие не отправляется (возможно) и событие disconnect не наступает, а нужно, что бы это было сразу определено. Возможно ли отследить отвалившегося клиента и сделать так, что бекэнд корректно отработает закрытие. Я пытаюсь понять как это можно решить и кто (nginx или nodejs) "виноват". Как проксируются такие постоянные соединения? Влияют ли таймауты (и какие) на это всё? Как обстоит c этим дело в новом nginx? Я не тестировал функционал проксирования в новой версии nginx.
↧