Ping
協議版本: 2024-11-05
模型上下文協議包含一個可選的 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 失敗以進行診斷