课前准备:提前在 https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D 获取火山方舟 ARK 的 API Key(保存为环境变量
ARK_API_KEY),并准备好模型 endpoint ID(如deepseek-v3-250324或自定义ARK_MODEL_ID)。
- 实现可并发的 SSE 推送 handler
- 构建消息广播/订阅机制
- 处理客户端断开与资源清理
- 为 SSE 逻辑编写测试与探活
- 认证与入口:登录获取 JWT、受保护 SSE/REST 接口(参考 code/17)
- SSE handler:建立流式响应、设置头、心跳/断线处理
- 订阅管理:注册/移除连接、背压与发送缓冲
- 消息来源:调用大模型流式响应并转发到 SSE(Ark API 示例)
- 取消与清理:
context.Done()、超时、客户端断开时回收资源 - 测试与验证:curl/交互客户端验证、模拟中断、错误路径覆盖
- 位置:
code/17/cmd/chatclient。 - 功能:提示输入用户名/密码,调用
/login获取 JWT,随后循环读取用户输入并向/chat发起请求,实时打印 SSE 返回的data:增量;Ctrl+C 会通过 context 取消当前请求并退出。 - 使用方式:先运行服务
go run ./cmd/chatserver或 Docker/Compose 启动;另开终端执行go run ./cmd/chatclient按提示操作。