Skip to content

【腾讯犀牛鸟开源课题实战】支持http sse协议 #207

Description

@liucf3995
  • 背景:框架支持 HTTP SSE特性,可助力业务探索 AI 大模型的业务场景。业务方也期望框架侧提供 HTTP SSE 的支持。
  • 需求:希望你能参考当前已有类库的接口,为tRPC-Cpp设计一套灵活、易用的接口,更好地扩展tRPC的生态。具体来来说,在实现时,你需要注意下面的要点:
    • 增加 HTTP SSE特性支持,涵盖服务端与客户端,包括协议、编解码、代理等实现与测试。可能需要实现子模块列表如下:
    • SseEvent:SSE 消息结构体,包含 event-type、data、id、retry 等方法。
    • SseParser:将文本消息解析成 SseEvent 对象,或者将 SseEvent 对象打包成文本消息。
    • codec:http_sse,请求头和响应头解析和现有逻辑一致,Body 采用 SseParser打包、接包。
    • client:HttpSseProxy,当前仅提供 Get 流式接口。
    • server: HttpSseService,提供SseStreamWriter接口,可以写入 SseEvent 文本消息。
    • stream: 复用现有 HTTP 流式接口。
  • 你应该尽可能复用tRPC-Cpp的各个模块,具体来说,你应该继承 ServiceProxy,实现一个比如HttpSseProxy,提供设计良好的接口,在实现接口时,应该复用框架的服务发现以及拦截器模块。
  • 你应该基于HTTP 流式接口封装业务编程接口,在框架 Fiber 协程模式下实现 SSE 流式。
    -参考资料:

小提示:
本issue为2025犀牛鸟开源人才培养活动专属issue,仅供参与犀牛鸟的在校大学生及开发者参与领取,认领前请先报名2025犀牛鸟开源人才培养计划( https://opensource.tencent.com/summer-of-code )。
【认领issue】在issue所在repo页面留言“已成功领取本issue”→微信私信犀牛鸟小助手(活动群-黄贵龙):issue链接+认领截图→犀牛鸟小助手回复“已成功领取本issue”,即可开始做issue任务。
【完成issue】已完成issue的同学,请同步犀牛鸟小助手(私信活动群-黄贵龙回复“已完成本issue任务+代码合入截图等证明”)。
注意:如7天内无提交任何进展包括不限于comment \ commit \ Pull Request,则将视为同学主动放弃issue,组委会将释放issue给下一位等候者。
【第三阶段·实战课题】需要8月1日入围后即可参与,请勿认领

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions