心跳检测
协议修订版:2024-11-05
模型上下文协议(MCP)包括一个可选的心跳检测机制,允许任一方验证对方是否仍保持响应以及连接是否活跃。
概览
心跳检测功能通过简单的请求/响应模式实现。客户端或服务器均可通过发送 ping
请求发起心跳检测。
消息格式
心跳请求是一个标准的 JSON-RPC 请求,不带参数:
{
"jsonrpc": "2.0",
"id": "123",
"method": "ping"
}
行为要求
- 接收方 必须 迅速响应一个空响应:
{
"jsonrpc": "2.0",
"id": "123",
"result": {}
}
- 如果在合理的超时时间内未收到响应,发送方 可以:
使用模式
sequenceDiagram
participant Sender
participant Receiver
Sender->>Receiver: 心跳请求
Receiver->>Sender: 空响应
实现注意事项
- 实现 应该 定期发出心跳请求以检测连接健康状态
- 心跳的频率 应该 是可配置的
- 超时时间 应该 适合网络环境
- 应该 避免过度发送心跳请求以减少网络开销
错误处理
- 超时 应该 被视为连接失败
- 多次心跳失败 可以 触发连接重置
- 实现 应该 记录心跳失败以供诊断