首页 > 解决方案 > 是否可以刷新对客户端的节点响应以保持连接处于活动状态?

问题描述

我有一个客户正在请求的大型数据集。它需要加载和处理,因此我可以将其转换为 CSV。如果我尝试一次加载和转换整个数据集,它不会在客户端超时之前完成处理。作为对此的回应,我加载了我的数据集,然后将其分块进行处理。此时我已经准备好在超时之前发送给客户端的数据。

我的问题是,当我发送数据时,无论是通过将我的写入流传输到响应中,还是通过收听我的写入流并发送 VIA response.write,它都不会及时发送。这似乎是因为我没有达到响应作者的 highWaterMark。我需要一种方法来告诉连接等待更长的时间(res.setTimeout(2147483647);似乎没有解决问题),降低highWaterMark,或排出响应,以便客户端始终如一地获取处理过的数据。

这是在节点 12.xw/Express 4 上。

标签: node.jsexpresshttpresponsehttp-streaming

解决方案


是否可以刷新对客户端的节点响应以保持连接处于活动状态? 根据 jfriend00 所说,在写入数据之前将我的响应塞住,写入数据,然后将其打开,导致它被发送到客户端。

调用这个解决了。


推荐阅读