• Node.js - в чем причина и как бороться с ошибками "Request Interrupted" и "Idle connection", если они возникают в простом запросе?

    @keht Автор вопроса
    Сам же и отвечу на свои вопросы по прошествии пары лет : )

    1 - Проблема в парсинге реквеста на стороне ноды. Реквест содержит JSON body, который автоматом парсится нодой, и это внезапно безумно дорого даже при небольшом объеме данных (~10кб).

    2, 3 - Проблема исключительно на клиенте. Т.к. все клиенты - мобильные устройства, ситуация с подвисающим/отваливаюимся реквестом - норма. H15/H18 легко воспроизводятся, если сымитировать плохой/пропадающий коннекшн на устройстве.

    4 - Причина в количестве данных. Чем дальше в игре дошел игрок, тем жирнее его реквесты. А чем больше данных, тем дольше обрабатывается реквест (п.1) и тем больше шансов, что что-то пойдет не так.

    5 - Для ускорения запроса отказываемся от JSON body в реквесте, передаём параметры другим способом. С H15/18 ничего на стороне сервера не поделать, поэтому делаем магию на клиенте, чтобы он умел справляться с недошедшими запросами.
    Ответ написан
    Комментировать