node.js - Azure Functions 保持 HTTP 连接处于事件状态

标签 node.js azure azure-functions azure-function-app

我一直在努力寻找与我在使用 Azure Functions (Node.js) 时遇到的问题相关的任何信息。

我试图保持 HTTP 请求/连接处于事件状态,并在初始请求时启动文本/流,并将 block 写入该流而不终止连接。

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

我似乎无法在 Azure 的 context.res 对象中找到等效项,也无法阻止 Azure Functions 调用 context.res.done() 而只是将 block 写入事件流。

我正在尝试构建一个允许我执行长轮询的解决方案...

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

非常感谢。

更新:

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

最佳答案

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

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

我解决这个问题的高级建议是(松散耦合的解决方案):拥有一个内存/数据库,您的第一个功能应用程序可以在其中保存所有 block ,直到它们被拾取第二个函数app,它合并流的所有 block 并发送到最终目的地。一旦第一个功能应用程序将所有 block 保存到内存/数据库,您就可以向任何发布/订阅服务(如事件网格)发送消息,然后触发第二个功能应用程序。您的内存/数据库可以有这样的模式 - ChunkID (PK)、StreamID、ChunkStream、SequenceNo 等

关于node.js - Azure Functions 保持 HTTP 连接处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63436942/

相关文章:

node.js - node-formidable 和一个简单的进度条

c# - 无需 Visual Studio 即可运行 Azure 计算模拟器和存储并启动网站

Azure 逻辑应用触发器未触发

azure - 本地运行具有 nuget 包引用的 Azure Functions 时出错

azure - 如何使用参数调用azure函数

node.js - 快速创建大量素数流

node.js - 剧作家:如何确保某个元素不存在?

javascript - 在 Node.js 中打破回调函数内的 "for"循环

javascript - 查询Azure时间序列数据(TSI)数据

azure - 由于在其中调用长时间运行的 Azure 函数,逻辑应用程序超时