Ping
协议版本:2025-03-26
模型上下文协议包括一个可选的 ping 机制,允许任一方验证其对应方仍然响应并且连接处于活动状态。
概述
ping 功能通过简单的请求/响应模式实现。客户端或服务器都可以通过发送 ping 请求来启动 ping。
消息格式
ping 请求是一个没有参数的标准 JSON-RPC 请求:
{
"jsonrpc": "2.0",
"id": "123",
"method": "ping"
}行为要求
- 接收者必须立即使用空响应响应:
{
"jsonrpc": "2.0",
"id": "123",
"result": {}
}- 如果在合理的超时期限内未收到响应,发送者可以:
- 认为连接已过时
- 终止连接
- 尝试重新连接过程
使用模式
sequenceDiagram
participant Sender
participant Receiver
Sender->>Receiver: ping 请求
Receiver->>Sender: 空响应
实现考虑
- 实现应该定期发出 ping 以检测连接健康
- ping 的频率应该是可配置的
- 超时应该适合网络环境
- 应该避免过多的 ping 以减少网络开销
错误处理
- 超时应该被视为连接失败
- 多次失败的 ping 可以触发连接重置
- 实现应该记录 ping 失败以进行诊断