38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
---
|
||
title: "SSE (Server-Sent Events)"
|
||
type: entity
|
||
tags: [web, real-time, http]
|
||
sources: [mcp在cursor中的集成与应用详解, expose-hermes-agent-as-an-openai-compatible-api-for-any-frontend]
|
||
last_updated: 2026-05-02
|
||
---
|
||
|
||
## Overview
|
||
SSE(Server-Sent Events,服务器推送事件)是一种基于 HTTP 的**服务器向客户端推送实时事件**的技术,允许服务器主动向浏览器或客户端应用发送数据更新。
|
||
|
||
## Key Characteristics
|
||
- **单向通信**:仅服务器向客户端推送,客户端不能反向通信
|
||
- **基于 HTTP**:使用标准 HTTP 协议,易于穿过防火墙
|
||
- **自动重连**:浏览器端 SSE API 自动处理连接断开重连
|
||
- **文本协议**:使用文本格式传输数据(通常为 JSON)
|
||
|
||
## Usage in Hermes Agent
|
||
`/v1/runs` API 通过 SSE 实现长会话实时进度订阅:
|
||
- **Token 流**:逐 token 推送响应内容
|
||
- **工具进度**:自定义事件推送工具执行状态
|
||
- **实时反馈**:用户可看到 Agent 思考和工具调用的全过程
|
||
|
||
## Comparison
|
||
|
||
| 特性 | SSE | WebSocket |
|
||
|------|-----|-----------|
|
||
| 通信方向 | 单向(服务端→客户端) | 双向 |
|
||
| 协议 | HTTP | 独立协议 |
|
||
| 复杂度 | 简单 | 较复杂 |
|
||
| HTTP/2 多路复用 | 支持 | 支持 |
|
||
| 防火墙穿透 | 易 | 需特殊配置 |
|
||
|
||
## Related Pages
|
||
- [[expose-hermes-agent-as-an-openai-compatible-api-for-any-frontend]]
|
||
- [[ToolStreaming]]
|
||
- [[ResponsesAPI]]
|