功能与技术概览

面向加密通讯的核心能力概览。

以下技术示例展示消息、文件、RTC 加密、多端同步和安全边界如何协同工作。

加密消息发送

客户端在统一协议下发送文本、图片、语音和文件消息,并通过 ACK、重试和历史同步保持多端一致。

Client → IM
MESSAGEencrypted_message
{
  "message_type": "single_text",
  "conversation_id": "u_1001:u_1002",
  "body": "The deployment key rotated successfully.",
  "crypto": {
    "encrypted": true
  },
  "sync": {
    "ack_required": true,
    "target_devices": ["web", "flutter"]
  }
}

安全文件传输

文件和媒体通过受控上传、provider-aware locator、沙箱下载和生命周期策略进入会话。

Client → File
FILEsecure_file
{
  "message_type": "single_file",
  "conversation_id": "u_1001:u_1002",
  "file": {
    "assetId": "mf_8K2mVp9",
    "provider": "s3",
    "url": "secure/2026/06/design-brief.pdf",
    "name": "design-brief.pdf",
    "size_bytes": 2482194
  },
  "retention": {
    "expires_in_days": 7,
    "download_disposition": "attachment"
  }
}

群组音视频(LiveKit SFU)

群组音视频采用 LiveKit SFU 架构而非 P2P Mesh,BFF 签发 room token,Nginx 代理媒体平面;1v1 通话保留 P2P WebRTC + TURN relay,统一信令入口承接两种通话拓扑。

Client → RTC
RTCgroup_room_invite
{
  "event": "session.invite",
  "session_id": "group-42-20260622",
  "conversation_type": "group",
  "conversation_id": 42,
  "from_user_id": 1001,
  "payload": {
    "kind": "group-video",
    "title": "产品演示群"
  }
}

通讯安全集成点

平台架构并非拼凑的独立模块,而是消息网络、身份边界、文件传输与安全治理的深度协同。

统一消息协议

私聊、群聊、文本、图片、语音和文件沿用统一消息生命周期,便于多端同步、ACK、重试和本地持久化。

加密与身份边界

HTTP payload encryption、IM ticket、登录态与消息加密共同组成跨端安全边界,降低凭证和内容暴露风险。

群组与安全治理

群组、联系人、举报、拉黑、限流和内容审核以通讯安全为中心协作,保护预上线产品的可信使用环境。

跨端客户端覆盖

Web、Flutter(iOS · Android · macOS · Linux)、Android native、iOS native 共用消息协议与 locs-im-v1 加密边界,跨端行为由统一协议治理文档约束。

服务端分布式架构

15 个独立服务组件,覆盖 IM、文件、RTC 和网关全链路。

自研 C++ IM 核心与 Go / Node.js / NestJS 服务层分离部署,各组件职责单一、可独立扩展。

IM 消息层

C++ Native

native socket + WebSocket 双网关并行;独立路由层负责跨服务器消息转发;负载均衡按连接数动态调度;持久化代理层隔离 IM 核心与底层存储实现。

文件传输层

S3-Compatible

控制面与数据面分离;S3 presigned URL 直传;离线传输带每日字节配额、并发任务上限、磁盘水位熳断和 7 天自动清理;JPEG/PNG/WebP 文件头校验防恶意 MIME 伪装;沙箱子域名隔离防 XSS。

RTC 与实时协作层

WebRTC + SFU

统一信令入口承接 1v1 通话和实时协作事件;1v1 P2P WebRTC + TURN relay;群组音视频 LiveKit SFU,避免 Mesh 复杂度和跨端 codec 漂移;共享画板采用操作 patch 协议独立于媒体传输。

网关、认证与业务层

Multi-Service

Nginx 统一公网 HTTP/WebSocket/TCP 入口;Auth 处理登录、OAuth 快捷登录和 IM ticket 签发;BFF 负责 HTTP Payload 加解密和 LiveKit token;Business 处理资料、关系和媒体数据;Go Push 负责推送投递。

Admin 运营后台

账号开通、注册策略与内容处置,全面可控。

管理员通过 Admin Dashboard 执行账号生命周期管理、动态切换注册策略(无需重启),并完整处置内容举报与用户违规。

账号生命周期管理

  • 账号开通与角色分配(standard / admin)

  • 用户警告 / 临时封禁 / 永久封禁 / 恢复

  • 邀请码创建、批量列表与随时吊销

  • 新账号 24 h 冷却期(Journey 创建和好友申请)

注册策略动态控制

  • invite-only:仅邀请码注册

  • open:公开注册

  • closed:关闭所有注册入口

  • OAuth 快捷登录与首次注册可独立开关

  • 策略变更实时生效,无需重启服务

内容与举报处置

  • Journey 四状态流转:published / pending / hidden / rejected

  • 举报证据快照不可变存储,支持回溯核查

  • 管理员可对 Journey 执行 hide / restore

  • 管理员可对用户执行 warn / suspend / ban / restore

  • 所有操作写入 UTC 审计记录

内容安全与风控

本地规则引擎、风险评分与不可变证据留存。

平台在内容发布、好友申请和举报处置三个维度内置安全闭环——低成本本地规则预过滤与人工审核互补,不替代。

文本规则引擎

Unicode 归一化、大小写折叠、连续空白压缩、重复字符变体检测;自动提取 URL、电话号码和站外账号。Journey 和好友申请文本分类为 allow / review / block:review 自动挂起不公开显示,block 直接拒绝发布。规则匹配记录最小化元数据,不存储原始全文。

好友申请风险评分

申请附言经本地规则实时评分:明显违规直接拒绝;疑似风险透传但累积风险记录;24 小时内重复文本或链接追加额外风险信号。当前仅用于审计告警,不触发自动封禁,保持低误判率。

举报与证据留存

用户举报、内容举报和消息举报均保存不可变证据快照(含时间戳、账号、消息内容)。管理员查看快照后可对 Journey 执行 hide / restore,对用户执行 warn / suspend / ban / restore。所有 admin 操作写入 UTC 时间戳审计记录,支持回溯核查。