node.js - 是否可以刷新对客户端的节点响应以保持连接处于活动状态?
问题描述
我有一个客户正在请求的大型数据集。它需要加载和处理,因此我可以将其转换为 CSV。如果我尝试一次加载和转换整个数据集,它不会在客户端超时之前完成处理。作为对此的回应,我加载了我的数据集,然后将其分块进行处理。此时我已经准备好在超时之前发送给客户端的数据。
我的问题是,当我发送数据时,无论是通过将我的写入流传输到响应中,还是通过收听我的写入流并发送 VIA response.write
,它都不会及时发送。这似乎是因为我没有达到响应作者的 highWaterMark。我需要一种方法来告诉连接等待更长的时间(res.setTimeout(2147483647);
似乎没有解决问题),降低highWaterMark
,或排出响应,以便客户端始终如一地获取处理过的数据。
这是在节点 12.xw/Express 4 上。
解决方案
是否可以刷新对客户端的节点响应以保持连接处于活动状态? 根据 jfriend00 所说,在写入数据之前将我的响应塞住,写入数据,然后将其打开,导致它被发送到客户端。
调用这个解决了。
推荐阅读
- java - 我想将我的控制器名称设置为与 Spring Boot 中的输入字段数据相同吗?
- python - 带有环境变量的 curl 请求有效,但在 python3 请求上失败
- python - 未绑定方法调用中的参数“分数”没有值
- java - 如何在图像上动态添加文本?
- css - 是否有 Shopify 聊天机器人集成让实施者可以控制聊天机器人框的大小?
- javascript - Socket.io 仅在按下按钮时起作用?
- javascript - 在 c# selenium 中使用 javascript 将文本注入 IWebElement 的 innerhtmlm
- python-3.x - 如何获取用户输入并将其放置在列表中类似元素的旁边?
- node.js - 如何在 module.exports 文件中使用 bot.on 功能
- python - 根据它们在组中的出现向分组的熊猫值添加数字