微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firebase函数事件源停留在待处理状态

如何解决Firebase函数事件源停留在待处理状态

我正在尝试使用事件发射器触发我需要的特定功能。这是nodejs代码。 事件源在 localhost 上本地运行,但是一旦部署,我将无法检测到事件触发器。但是,firebase功能记录器上的日志显示了正在执行的功能。但是,在测试时,该功能不提供对该事件的任何反馈

Count() then Sum([Value]) Over (AllPrevIoUs([Axis.Rows])) / Sum([Value]) OVER (All([Axis.Rows])) as [Cumulative Sum]

当我在本地测试此代码以进行事件发射时,使用以下Angular代码,将在控制台上检测并记录该事件。但是,将功能部署到 firebase功能后,我在浏览器的“网络”标签上收到了一个待处理请求,该日志没有任何日志,并且似乎没有完成全部,我的角度代码不可避免地什么也没检测到

const EventEmitter = require('events');

const Stream = new EventEmitter();

// 'Access-Control-Allow-Origin': '*',// 'Access-Control-Allow-Methods': 'GET,POST,OPTIONS,PUT,PATCH,DELETE',exports.eventEmitter = (req,res) => {
    console.log(req.body);
    res.writeHead(200,{
        'Content-Type': 'text/event-stream','Cache-Control': 'no-cache',Connection: 'keep-alive'
    })

    Stream.on('push',function(event,data) {
        console.log('send0');
        res.write('event: ' + String(event) + '\n' + 'data:' + JSON.stringify(data) + '\n\n');
    });

    setInterval(() => {
        console.log('send1');
        Stream.emit('push','message',{ msg: 'it works! hurraaay' });
    },5000);

}

解决方法

云功能HTTP端点不支持将数据流传输到Websocket之类的客户端。它只能预先接收整个有效负载,然后将整个有效负载发送回客户端。没有分块的响应。有效负载限制为10MB。函数调用的默认超时为60s,最多只能增加到9m。如果您需要流式传输,那么Cloud Functions不是适合您的用例的产品。

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