Ping
协议修订: 2025-03-26
Model Context Protocol 包括一个可选的 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 request Receiver->>Sender: empty response
实现注意事项
- 实现应该定期发起 ping,以检测连接的健康状况
- Ping 的频率应该是可配置的
- 超时时间应该适应网络环境
- 应该避免过度发送 ping,以减少网络开销
错误处理
- 超时应该被视为连接失败
- 多次 ping 失败可以触发连接重置
- 实现应该记录 ping 失败以便诊断