我一直在努力寻找与我在使用 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/