闲社服务运行正常AI智能体自动化平台
t

客户端端到端流程

技能标识:teamgram-client-e2e-flow

Documents the KHF Android client architecture and complete end-to-end data flows for login, messaging, and file operations through all Teamgram Server layers.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

客户端端到端流程

KHF Android 客户端架构与端到端数据流

KHF 客户端关键常量

从 KHF 源码提取(必须与服务端兼容):

  • - TLRPC.LAYER = 222
  • BuildVars.APPID = 4
  • BuildVars.APPHASH = 014b35b6184100b085b0d0572f9b5103

tgnet/ConnectionsManager:Java → JNI → Native MTProto

ConnectionsManager 负责:

  • - nativeinit(...) 初始化 MTProto(layer/apiid/设备信息)
  • native_sendRequest(...) 发送 RPC
  • DC/网络状态管理

客户端通过 JNI 调用 Native C++ 层实现 MTProto 协议,包括:

  • - 加密/解密(AES-IGE)
  • 握手(DH 密钥交换生成 auth_key)
  • 消息序列化/反序列化(TL 二进制格式)
  • 网络连接管理(TCP/WebSocket)
  • 重连与退避策略

MessagesController:业务层

MessagesController 负责 dialogs/messages/users/chats 的本地模型与网络请求,典型方法:

  • - loadAppConfig — 加载应用配置
  • loadDialogs — 加载对话列表
  • loadMessages — 加载消息
  • loadFullChat — 加载群组完整信息
  • loadFullUser — 加载用户完整信息

端到端数据流示例

登录流程:auth.sendCode → auth.signIn

text
客户端(KHF)
-> TL: auth.sendCode(phonenumber, apiid, api_hash, settings)
-> MTProto 加密消息
-> gnetway 解密 + QuickAck + SendDataToSession
-> session 解码 TLMessage2 -> 通过 IDMap 路由到 /mtproto.RPCAuthorization
-> bff.authorization.AuthSendCode
-> biz.user(检查手机号是否注册)
-> status(在线会话)
-> verify-code 插件(短信)或应用验证码
<- bff 返回 auth.SentCode 或错误
<- session 封装 rpc_result
<- gnetway 加密并回传
<- 客户端解析 auth.SentCode

消息发送流程:messages.sendMessage

text
客户端
-> TL: messages.sendMessage / messages.sendMedia / ...
-> gnetway -> session -> bff.messages
-> bff.messages
-> biz_service(dialog/message/chat/user)
-> msg service(异步投递 + Kafka)
-> messenger.msg 生产消息到 Kafka Inbox-T
-> inbox 消费 Inbox-T,写入 inbox/outbox 状态
-> 生产更新到 Kafka Sync-T
-> sync 消费 Sync-T,决定 UpdatesMe/NotMe/PushRpcResult
-> sync 调用 session(gRPC)推送更新/rpc_result
-> session 路由到正确的 sessionId
-> gnetway 加密 -> 客户端

文件上传下载流程

text
客户端
-> files.upload* / upload.getFile
-> bff.files
-> dfs 保存/获取文件分片
-> media 生成缩略图/元数据
-> db 写入 documents/photos/photo_sizes/...
<- 返回 inputFile / fileLocation / document/photo

DFS
- Minio 存储桶:documents/photos/videos/encryptedfiles
- MiniHttp 0.0.0.0:11701 提供 HTTP 下载入口

客户端与服务端兼容性要点

  1. 1. LAYER 版本:客户端 LAYER=222 必须与服务端 session.yaml 中的 layer 配置一致
  2. APPID/APPHASH:必须与服务端 BFF 配置中的 ApiId/ApiHash 匹配
  3. MTProto 握手:客户端使用 obfuscated2 + AES-IGE 加密
  4. TL 序列化:客户端和服务端必须使用相同的 TL Schema 版本

常见错误与排查

错误含义排查方向
PHONENUMBERINVALID手机号格式不正确检查国际格式(+86...)
PHONENUMBERBANNED
手机号被封禁 | 检查 predefined_users 表 | | SESSIONPASSWORDNEEDED | 需要两步验证 | 用户设置了密码 | | AUTHKEYUNREGISTERED | auth_key 未注册 | 清除客户端数据重新握手 | | CONNECTIONNOTINITED | 未调用 initConnection | 客户端需先发 initConnection | | ERRENTERPRISEISBLOCKED | 企业版功能锁定 | 需要解除企业版拦截(修改 bizservice 中的企业版检查逻辑) | | METHODNOTIMPL | RPC 方法未实现 | 检查 BFF handler 和 session IDMap 路由是否配置 |

企业版锁定模式

Teamgram 社区版中部分功能被企业版锁定拦截,表现为:

  • - ERRENTERPRISEISBLOCKED 错误
  • 在 bizservice 层的 helper 中通过 checkEnterprise() 函数拦截

解锁方法:修改 biz_service 中对应 helper 的企业版检查逻辑,移除或绕过 checkEnterprise() 调用。

关键代码路径

客户端(KHF)

  • - ConnectionsManager:TMessagesProj/jni/tgnet/ConnectionsManager.cpp
  • MessagesController:TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java
  • TLRPC 定义:TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java
  • BuildVars:TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java

服务端(HD/Teamgram)

  • - gnetway 入口:app/interface/gnetway/
  • session 路由:app/interface/session/
  • BFF 模块:app/bff/
  • biz_service:app/service/biz/
  • messenger:app/messenger/
  • 配置文件:teamgramd/etc/
  • SQL schema:teamgramd/deploy/sql/

源代码参考

  • - 仓库地址:https://github.com/teamgram/teamgram-server(Apache-2.0 许可证)

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 teamgram-client-e2e-flow-1776078553 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 teamgram-client-e2e-flow-1776078553 技能

通过命令行安装

skillhub install teamgram-client-e2e-flow-1776078553

下载

⬇ 下载 teamgram-client-e2e-flow v1.0.0(免费)

文件大小: 3.67 KB | 发布时间: 2026-4-15 14:37

v1.0.0 最新 2026-4-15 14:37
Initial release
返回顶部