如何解决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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。