Skip to content

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

@liucf3995

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日入围后即可参与,请勿认领

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