远程协议 · 05

WSS 不是新棋力:KataGo JSON 的远程通道

看懂 Read19 的加密 WebSocket 会话:连接后每个文本帧都是标准 KataGo Analysis Engine JSON,结果会在搜索中持续更新。

  1. 连接只负责建立加密双向通道

    客户端连接 wss://read19.com/v1/katago/<API_KEY>。wss 表示 WebSocket over TLS;路径中的 API Key 是凭据,不应写进日志、截图或公开示例。连接成功后,双方都可以在同一会话中主动发送消息。

    一次 TLS 握手后保留双向会话;完整 URL 应与密码一样保护。
  2. 每个文本帧都是一条 KataGo JSON 消息

    查询至少包含唯一 id、moves、initialStones、rules、komi、boardXSize、boardYSize 与 analyzeTurns。需要途中更新时设置 reportDuringSearchEvery,Read19 支持 0.1 到 5 秒的间隔。

    WSS 是运输层,消息体仍遵循 Analysis Engine JSON;不是再套一层私有棋谱格式。
  3. 用 isDuringSearch 判断是否结束

    搜索中的响应带 isDuringSearch: true,适合刷新候选着和曲线;最终响应为 false,才表示该 id 的任务完成。若用户换了局面,发送 action: terminate 与 terminateId,只取消目标查询,不必断开整个会话。

    同一 id 可以收到多次途中快照和一次最终快照;terminate 指向查询 id,而不是关闭全部连接。

协议依据

  1. Read19 API 文档
  2. KataGo Analysis Engine 文档

实现时检查

  • API Key 不进入日志
  • 每个查询 id 唯一
  • 按 isDuringSearch 更新状态
  • 切换局面时终止旧 id
阅读 stdout 协议