Azure函数使HTTP连接保持活动状态

问题描述

我一直在寻找与Azure Functions(Node.js)遇到的问题有关的任何类型的信息。

我试图保持HTTP请求/连接处于活动状态,并在初始请求和向该流写入块的过程中启动文本/流,而不会终止连接。

虽然我可以使用带有response.write(...)的标准express + Node.js进程/服务器来做到这一点。

我似乎无法在Azure的context.res对象中找到等效项,也不能阻止Azure Functions调用context.res.done()而是仅将块写入活动流中。

我正在尝试建立一个解决方案,使我可以执行长时间轮询...

非常感谢您提供任何建议或信息。

非常感谢您。

更新:

对于任何偶然发现此问题的人。除了整个http请求/响应之外,无法执行其他任何操作。希望将来支持直接从Azure函数流式传输数据。

解决方法

Azure Functions是一种无服务器计算服务,可让您运行事件触发的代码,而无需显式设置或管理基础结构。

由于Azure Functions是无服务器的,因此您无法将不同的Http请求发送到同一函数实例,因为您无法控制服务器并且它们是内部管理的。

我对解决此问题的高级建议是(一个松散耦合的解决方案):有一个内存/数据库,您的第一个功能应用可以保存所有块,直到被拾取为止第二个功能应用,该功能合并了流的所有块并将其发送到最终目的地。一旦所有块被第一个功能应用保存到内存/数据库中,您就可以向任何发布/订阅服务(例如事件网格)发送一条消息,然后触发第二个功能应用。您可以为您的内存/数据库使用这样的架构-ChunkID (PK),StreamID,ChunkStream,SequenceNo,etc.

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...