导航菜单

  • 1.什么是MCP
  • 2.架构概览
  • 3.理解MCP服务器
  • 4.理解MCP客户端
  • 5.版本控制
  • 6.连接本地MCP服务器
  • 7.连接远程MCP服务器
  • 8.构建MCP服务器
  • 9.构建MCP客户端
  • 10.SDKs
  • 11.理解MCP中的授权
  • 12.安全最佳实践
  • 13.MCP Inspector
  • 14.规范
  • 15.关键变更
  • 16.架构
  • 17.基础协议概述
  • 18.生命周期
  • 19.传输
  • 20.授权
  • 21.取消
  • 22.Ping
  • 23.进度
  • 24.任务
  • 25.根
  • 26.采样
  • 27.引导
  • 29.提示
  • 30.资源
  • 31.工具
  • 32.补全
  • 33.日志
  • 34.分页
  • 35.模式参考
  • Keycloak
  • 28.服务器功能
  • 1. 什么是 Ping?
  • 2. 本章你将学到
  • 3. 消息格式
    • 3.1 Ping 请求
    • 3.2 Ping 响应
  • 4. 行为要求
  • 5. 流程示意
  • 6. 实现建议
  • 7. 错误处理

1. 什么是 Ping? #

Ping 是一种心跳检测机制,用于验证对方是否仍在响应、连接是否存活。任一方均可发起 ping,对方需及时回复空响应。

协议版本:2025-11-25

通俗理解 说明
心跳检测 像「你还活着吗?」的询问,对方回复即表示连接正常
可选 Ping 是可选功能,实现可根据需要启用
双向 客户端或服务器均可发起 ping

2. 本章你将学到 #

  • Ping 的请求与响应格式
  • 行为要求与超时处理
  • 实现建议与错误处理

3. 消息格式 #

3.1 Ping 请求 #

Ping 是标准的无参数 JSON-RPC 请求:

{
  "jsonrpc": "2.0",
  "id": "123",
  "method": "ping"
}

3.2 Ping 响应 #

接收方必须及时返回空结果:

{
  "jsonrpc": "2.0",
  "id": "123",
  "result": {}
}
要求 说明
及时 接收方应尽快响应,不应拖延
空 result result 为空对象 {}

4. 行为要求 #

角色 要求
接收方 必须及时响应空结果
发送方 若超时未收到响应,可以认为连接已失效、终止连接或尝试重连

5. 流程示意 #

sequenceDiagram participant S as 发送方 participant R as 接收方 S->>R: ping 请求 (id: 123) R-->>S: 空响应 (id: 123)

典型场景:客户端每隔 30 秒发送一次 ping,若连续 3 次超时无响应,则判定连接断开并尝试重连。

6. 实现建议 #

建议 说明
定期发送 应当定期发送 ping 以检测连接状态
可配置 Ping 频率应当可配置(如间隔 30 秒、60 秒)
超时适配 超时时间应当适合网络环境(本地可短、远程可长)
避免过度 应当避免过于频繁的 ping,减少网络开销

7. 错误处理 #

情况 处理
单次超时 应当视为连接可能失效
多次失败 可以触发连接重置或重连
记录 应当记录 ping 失败,便于诊断
← 上一节 21.取消 下一节 23.进度 →

访问验证

请输入访问令牌

Token不正确,请重新输入