From d1626aeb1a8456698c9f08fad7d8615e6472b3b7 Mon Sep 17 00:00:00 2001 From: zlt Date: Thu, 30 Jul 2026 09:10:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E7=89=88=E6=9C=AC=E5=8E=86?= =?UTF-8?q?=E5=8F=B2=E9=A1=BA=E5=BA=8F=E4=BF=AE=E6=AD=A3=20+=20=E4=BA=A4?= =?UTF-8?q?=E6=8E=A5=E6=96=87=E6=A1=A3=E6=AC=A0=E8=B4=A6=E6=B8=85=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QMT_WS_PROTOCOL.md | 2 +- WS_INTEGRATION_STATUS.md | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/QMT_WS_PROTOCOL.md b/QMT_WS_PROTOCOL.md index a0127eb..a38dffa 100644 --- a/QMT_WS_PROTOCOL.md +++ b/QMT_WS_PROTOCOL.md @@ -527,5 +527,5 @@ QMT 侧如有本表未覆盖的拒绝场景,请在定稿时补充,**不要 |---|---|---| | V0.9 | 2026-07-28 | 初稿。依据 QMT 侧对《QMT_INTERFACE_REQUIREMENTS.md》六项问询的答复,将指令通道由表轮询改为 WebSocket 双向长连接;补齐签名、幂等、序号补发与对账兜底 | | V0.9.1 | 2026-07-28 | 按双方最终意见调整:①**不启用 TLS**,改为明文 `ws://` + 内网 IP 白名单,并补充取舍说明与相应的安全补偿(签名升格为必需、承担身份认证职责)②`hello` 去掉 `client_version` ③签名方案锁定 Ed25519(原 Q5 二选一取消)④补齐 §2.1.1 测试向量与参考实现,消除规范化串的实现歧义 | -| **V1.0** | 2026-07-28 | **定稿**。回填 R1/R2:旧通道**即刻停用**、端点定为 `ws://192.168.16.98:8080`;补 §10.1.1 部署前检查清单(白名单、公钥交换、Redis 持久化、密钥只走 `.env`);调整 §9 灰度策略(旧通道已停,无从并行,改为小仓位实跑) | | V0.9.2 | 2026-07-28 | 回填 QMT 侧 Q1~Q11 答复(§10),并据此补齐四处:①新增下行消息 **`ack_seq` 累积确认**(§4.5)——对方的「按最后未 ack 的消息续发」实现依赖它,原协议缺失 ②`trade_no` 定为 `{broker_order_id}#{n}`(§5.5)——券商原生只有委托号,一委托多成交时无法逐笔去重 ③手续费**不摊入持仓成本**、新增 `fee_estimated` 标志(§5.5)——对方明确逐笔费用可能有误差,避免污染安全垫 ④`CANCELLED`/`EXPIRED` 改由 PMS 侧自记(§7.2),不再要求下游区分。另记录 `total_filled` 口径存疑及规避方式(§10.2)。剩余阻塞项收敛为 R1/R2 两条(§10.1) | +| **V1.0** | 2026-07-28 | **定稿**。回填 R1/R2:旧通道**即刻停用**、端点定为 `ws://192.168.16.98:8080`;补 §10.1.1 部署前检查清单(白名单、公钥交换、Redis 持久化、密钥只走 `.env`);调整 §9 灰度策略(旧通道已停,无从并行,改为小仓位实跑) | diff --git a/WS_INTEGRATION_STATUS.md b/WS_INTEGRATION_STATUS.md index 99e5d7e..753444e 100644 --- a/WS_INTEGRATION_STATUS.md +++ b/WS_INTEGRATION_STATUS.md @@ -129,8 +129,13 @@ S3 密集测试正是高发场景,值得再确认一次。 ## 8. 文档欠账 -`QMT_WS_PROTOCOL.md`(V1.0 定稿)的版本历史表里,**V1.0 那行排在 V0.9.2 上面**, -而 `ack_seq` 恰恰是 V0.9.2 补进来的。对端照着表从上往下读到「V1.0 定稿」就停了, -`ack_seq` 因此被漏掉,直接导致了上面那个自激循环。 +**✅ 已清(2026-07-30,用户批准)**:`QMT_WS_PROTOCOL.md` §11 变更记录里 V1.0 那行原本 +排在 V0.9.2 上面,而 `ack_seq` 恰恰是 V0.9.2 补进来的——对端从上往下读到「V1.0 定稿」 +就停,`ack_seq` 因此被漏掉,直接导致了 §7 那个自激循环。现已改为 +V0.9 → V0.9.1 → V0.9.2 → V1.0。**纯调两行顺序,条款一字未动**(总行数不变,可 `git show` 核)。 -**顺序修正(纯顺序,不动条款)需要用户许可,问过三次未得答复,仍待处理。** +**遗留一项(待定夺,暂不动)**:端点在 `README.md`「ws 通道实现清单」与协议 §11 的 V1.0 +那行里都写作 `ws://192.168.16.98:8080`,而 `config/settings.py:94` 实际是 +`ws://192.168.16.98:9443/pms`(提交 `0a1a932 调整端口`)。**代码是对的、文档是旧的**, +联调不受影响(运行时读 settings / 运行参数,不读文档),但下一个接手的人会按文档去连 8080。 +改的是定稿协议正文里的一处事实值,故未擅动。