Можно ли передать клиенту sh ответ узла, чтобы сохранить соединение живым? - PullRequest
0 голосов
/ 14 февраля 2020

У меня большой набор данных, который запрашивает клиент. Это требует загрузки и обработки, чтобы я мог преобразовать его в CSV. Если я попытаюсь загрузить и преобразовать весь набор данных одновременно, он не завершит обработку sh до истечения времени ожидания клиента. В ответ на это я загружаю свой набор данных, а затем разделяю его на части для обработки. На данный момент у меня есть данные, готовые для отправки клиенту до истечения тайм-аута.

Моя проблема заключается в том, что когда я отправляю данные, либо отправляя поток записи в ответ, либо слушая мой поток записи и отправляя VIA response.write, он не отправляется вовремя. Кажется, это потому, что я не нажимаю highWaterMark на авторе ответов. Мне нужен способ указать подключению ждать дольше (res.setTimeout(2147483647);, кажется, не сработает), понизить highWaterMark или истощить ответ, чтобы клиент последовательно получал обработанные данные по мере их поступления.

Это на узле 12.xw / Express 4.

1 Ответ

0 голосов
/ 14 февраля 2020

Возможно ли передать sh ответ узла клиенту, чтобы поддерживать соединение в действии? Согласно тому, что сказал jfriend00, пробовать мой ответ перед записью данных, записать данные, а затем откупорить их вызвало его отправку клиенту.

Вызов это решен.

...