Javascript Firebase函数事件源卡在挂起状态

Javascript Firebase函数事件源卡在挂起状态,javascript,node.js,google-cloud-functions,event-sourcing,eventemitter,Javascript,Node.js,Google Cloud Functions,Event Sourcing,Eventemitter,我试图使用事件发射器来触发我需要的特定函数。 事件源在本地主机上运行,但一旦部署,我就无法检测到事件触发器。但是,firebase功能记录器上的日志显示正在执行的功能。但是,测试时,功能不会向事件提供任何反馈 const EventEmitter=require('events'); const Stream=new EventEmitter(); //“访问控制允许来源”:“*”, //“访问控制允许方法”:“获取、发布、选项、放置、修补、删除”, exports.eventEmitter=(

我试图使用事件发射器来触发我需要的特定函数。 事件源在本地主机上运行,但一旦部署,我就无法检测到事件触发器。但是,firebase功能记录器上的日志显示正在执行的功能。但是,测试时,功能不会向事件提供任何反馈

const EventEmitter=require('events');
const Stream=new EventEmitter();
//“访问控制允许来源”:“*”,
//“访问控制允许方法”:“获取、发布、选项、放置、修补、删除”,
exports.eventEmitter=(请求、回复)=>{
控制台日志(请求主体);
文书标题(200{
“内容类型”:“文本/事件流”,
“缓存控制”:“无缓存”,
连接:“保持活力”
})
Stream.on('push',函数(事件、数据){
console.log('send0');
res.write('event:'+String(event)+'\n'+'数据:'+JSON.stringify(data)+'\n\n');
});
设置间隔(()=>{
console.log('send1');
emit('push','message',{msg:'it works!hurraaay'});
}, 5000);
}
当我使用以下角度代码对该代码进行本地测试时,会在控制台上检测并记录该事件。然而,一旦我将功能部署到firebase functions,我会在浏览器的网络选项卡上收到一个挂起的请求,该请求没有任何日志,似乎根本没有完成,我的angular代码不可避免地检测不到任何内容

getStream(){
返回可观察的。创建(观察者=>{
让url='链接到发射器';
让eventSource=新的eventSource(url);
eventSource.addEventListener('message',函数(e){
控制台日志(如数据);
},假);
eventSource.addEventListener('open',函数(e){
//连接已打开。
控制台日志(“打开”);
},假);
eventSource.addEventListener('error',函数(e){
if(eventSource.readyState==eventSource.CLOSED){
//连接已关闭。
控制台日志(“关闭”);
}
},假);
eventSource.addEventListener('message',message=>{console.log(message.data);});
eventSource.onmessage=(事件)=>{
让json=json.parse(event.data);
如果(json!==未定义&&json!=''){
this.zone.run(()=>observer.next(json));
}
};
eventSource.onerror=(错误)=>{
if(eventSource.readyState==0){
log('流已被服务器关闭');
eventSource.close();
observer.complete();
}否则{
observer.error('EventSource error:'+error);
}
}
});
}

云功能HTTP端点不支持像websocket一样将数据流传输到客户端。它只能预先接收整个有效负载,然后将整个有效负载发送回客户端。没有分块的回答。有效负载的限制为10MB。函数调用的默认超时为60秒,最多只能增加到9米。如果需要流式处理,则云函数不是适合您的用例的产品。

如果我将其转换为web套接字,它是否可行?AWS lambda是否在类似的参数/原则下工作??什么是可行的选择?我不知道-你应该研究你的选择。堆栈溢出不是获取产品建议的地方。