来自配置 teamgramd/etc/gnetway.yaml:
yaml
Gnetway:
Server:
- Proto: tcp
Addresses:
- 0.0.0.0:10443
- 0.0.0.0:5222
- Proto: websocket
Addresses:
- 0.0.0.0:11443
协议端口说明TCP0.0.0.0:10443主要 MTProto TCP 端口TCP0.0.0.0:5222备用 TCP 端口WebSocket0.0.0.0:11443WebSocket 连接入口
Key: interface.sessiontext
收到加密数据
→ authKey.AesIgeDecrypt 解密
→ 提取 salt、sessionId、msgId
→ SessionDispatcher.SendData (gRPC) 转发给 session 服务
核心点:
authKey.AesIgeDecrypt 解密salt、 sessionId、 msgIdSessionDispatcher.SendData(gRPC)把 payload[16:] 转发给 session当 connContext 中没有 authKey(首次连接或缓存未命中):
QueryAuthKeyonEncryptedMessage 处理加密消息QuickAck token 通过 SHA256(authKey[88:120] + encryptedData) 前 4 字节计算,最高位置 1。 必须通过 codec 编码发送,否则 obfuscated CTR 计数器不同步,导致客户端解密失败。
app/interface/gnetway/app/interface/gnetway/internal/server/gnet/server_gnet.goteamgramd/etc/gnetway.yaml