开发者社区 > 云原生 > Serverless > 正文

请问函数计算中的 HTTP 触发器支持 SSE 了吗?

请问函数计算中的 HTTP 触发器支持 SSE 了吗?

展开
收起
码字王 2023-04-16 22:24:51 977 0
4 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云函数计算中的 HTTP 触发器目前已经支持 SSE(Server Sent Events)。

    你可以通过在 HTTP 响应头中添加 "Content-Type: text/event-stream" 来将返回的内容标识为 SSE 格式。并且,为了保持 SSE 长连接,需要在响应中添加一个无限循环。具体示例代码如下:

    def handler(event, context):
        headers = {
            'Content-Type': 'text/event-stream',
            'Cache-Control': 'no-cache',
            'Connection': 'keep-alive',
        }
        data = 'data: hello world\n\n'
        return {
            'headers': headers,
            'body': data,
        }
    

    其中,"data:" 表示返回的数据,"data: hello world\n\n" 的 "\n\n" 表示分隔符和数据结束符,以便客户端能够识别出每条 SSE 消息。此外,"Cache-Control" 和 "Connection" 头部可以保持 SSE 长连接。

    2023-04-30 09:07:09
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    是的,函数计算中的 HTTP 触发器已经支持 SSE (Server-Sent Events)。通过 SSE,函数计算可以向客户端推送实时数据,而不需要客户端主动请求数据。您可以在 HTTP 触发器的响应头中添加 "Content-Type: text/event-stream",并在响应体中返回符合 SSE 规范的数据,即可实现 SSE 功能。同时,您还需要设置响应头中的 "Cache-Control" 为 "no-cache",以确保客户端不会缓存响应数据。

    2023-04-17 11:51:00
    赞同 展开评论 打赏
  • 坚持这件事孤独又漫长。
    • 是的,阿里云函数计算中的 HTTP 触发器支持 SSE,可以通过设置 x-ali-apigw-sse: on 头来启用 SSE,确保您的函数代码也能够处理 SSE 消息。
    • 同时,建议您在返回头中添加 Content-Type: text/event-stream 以确保客户端正确解析 SSE 消息。
    2023-04-16 23:10:25
    赞同 展开评论 打赏
  • custom runtime 有流的例子

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-04-16 22:25:24
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 热门讨论

    热门文章

    相关电子书

    更多
    ApsaraMQ Serverless 演进之路 立即下载
    阿里巴巴HTTP 2.0实践及无线通信协议的演进之路 立即下载
    CDN助力企业网站进入HTTPS时代 立即下载