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

Node.js Azure函数使HTTP连接保持活动状态,node.js,azure,azure-functions,azure-function-app,Node.js,Azure,Azure Functions,Azure Function App,我一直在努力寻找与Azure函数(Node.js)问题相关的任何类型的信息 我试图保持HTTP请求/连接处于活动状态,并在初始请求时启动一个文本/流,并在不终止连接的情况下将块写入该流 虽然我可以使用带有response.write(…)的标准express+Node.js进程/服务器来实现这一点 我似乎在Azure的context.res对象中找不到等价物,也无法阻止Azure函数调用context.res.done(),而只是将块写入活动流 我正在尝试建立一个解决方案,允许我执行长轮询 我非

我一直在努力寻找与Azure函数(Node.js)问题相关的任何类型的信息

我试图保持HTTP请求/连接处于活动状态,并在初始请求时启动一个文本/流,并在不终止连接的情况下将块写入该流

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

我似乎在Azure的context.res对象中找不到等价物,也无法阻止Azure函数调用context.res.done(),而只是将块写入活动流

我正在尝试建立一个解决方案,允许我执行长轮询

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

多谢各位

更新:

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

Azure函数是一种无服务器计算服务,它允许您运行事件触发代码,而无需显式地配置或管理基础架构

而且,由于Azure函数是无服务器的,您不能向同一个函数实例发送不同的Http请求,因为您对服务器没有控制权,并且它们是内部管理的


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

你的意思是你从一个源获取同一Azure Function app实例上的数据块,并不断将它们附加到全局变量,一旦获得所有数据块,你一次就把所有的都还了吗?@HarshitaSingh-MSFT正确。数据可能在几分钟内可用,最多可能5分钟,但我需要对函数应用程序的http请求保持连接并保持活动状态,直到那时…嘿,非常感谢您的响应。我的错误是如此复杂!基本上我只想保持连接打开几分钟。因此,当您对/API /通知进行HTTP请求时,它会保持该请求存活几分钟,而不是立即返回上下文。完成(…)。这不可能实现使用函数应用程序,但您可以考虑我上面提到的高层次的概念。我只是想确认是否有办法绕过整个http请求/响应限制。谢谢你提供的信息,尽管我很感激。如果这个回答回答了你的问题,你能把它标记为帮助社区的答案吗?