一句话判断
这不是「又一个 IM」,而是 多传输统一的消息路由层(类似「应用层的 TCP/IP + 网关」)。
方向成立,赛道也有人在做;真正拉开差距的不是功能清单,而是:路由可靠性、冲突同步、电池/带宽成本、以及有没有垂直场景能付账。
───
为什么有搞头
┌────────────────────┬──────────┬──────────────────────────────────────────────────┐
│ 能力 │ 真实需求 │ 说明 │
├────────────────────┼──────────┼──────────────────────────────────────────────────┤
│ 可插拔 Transport │ 强 │ 终端环境碎片化严重,单一通道撑不住 │
├────────────────────┼──────────┼──────────────────────────────────────────────────┤
│ 自动选路/切换 │ 中高 │ 用户要的是「发出去了」,不是「选蓝牙还是 Wi-Fi」 │
├────────────────────┼──────────┼──────────────────────────────────────────────────┤
│ Gateway Bridge │ 很强 │ 这是把局部网拼成大网的关键,也是商业化落点 │
├────────────────────┼──────────┼──────────────────────────────────────────────────┤
│ Offline First │ 强 │ 灾害、工厂、矿区、舰船、偏远、审查环境都需要 │
├────────────────────┼──────────┼──────────────────────────────────────────────────┤
│ P2P + Mesh + Relay │ 必要 │ 没有多跳和中继,覆盖永远不够 │
└────────────────────┴──────────┴──────────────────────────────────────────────────┘
结构性机会:
互联网把「可达」当默认;你把「可达」当可选。
在断网、弱网、跨协议(蓝牙 ↔ LoRa ↔ 局域网 ↔ 公网)这些场景,现有 WhatsApp / 微信几乎交白卷。
───
竞品与「已有答案」
不要从零发明一切,要对标、借鉴、差异化:
┌───────────────────┬─────────────────────────┬───────────────────────────────┐
│ 项目 │ 强项 │ 短板(你可切入) │
├───────────────────┼─────────────────────────┼───────────────────────────────┤
│ libp2p │ 多 transport、NAT、发现 │ 偏开发者基建,产品层薄 │
├───────────────────┼─────────────────────────┼───────────────────────────────┤
│ Matrix + bridges │ 联邦、桥接 │ 在线假设重,弱网/本地 mesh 弱 │
├───────────────────┼─────────────────────────┼───────────────────────────────┤
│ Briar │ 离线、蓝牙/Wi-Fi │ 场景偏审查,通用性一般 │
├───────────────────┼─────────────────────────┼───────────────────────────────┤
│ Meshtastic │ LoRa mesh │ 低带宽、应用层简陋 │
├───────────────────┼─────────────────────────┼───────────────────────────────┤
│ Yggdrasil / cjdns │ 加密 overlay │ 不覆盖蓝牙/LoRa 等异构层 │
├───────────────────┼─────────────────────────┼───────────────────────────────┤
│ Scuttlebutt (SSB) │ Offline-first 同步 │ 延迟高、身份与存储模型特殊 │
├───────────────────┼─────────────────────────┼───────────────────────────────┤
│ Syncthing 思路 │ 断网同步哲学 │ 文件向,非消息路由 │
└───────────────────┴─────────────────────────┴───────────────────────────────┘
可做差异化的点:
统一消息抽象 + 多物理层 + 网关桥 + 自动选路 + 断网同步,做成一条产品链路,而不是五个独立项目。
───
真正难的部分(决定成败)
- 统一消息模型,而不是统一 socket
各 transport 差异巨大:
• 蓝牙:短距、小 MTU、连接贵
• Wi-Fi Direct / LAN:中带宽、发现复杂
• Internet:NAT、防火墙、可达性
• LoRa:极低带宽、高延迟、payload 往往几十~两百字节级
不能假装都是「可靠字节流」。更稳的是:
App
→ Envelope(身份 / 优先级 / 过期 / 分片 / 回执策略)
→ Router(选路 / 多跳 / 降级)
→ Transport Adapter(蓝牙 / Wi-Fi / LAN / 公网 / LoRa)
Envelope 必须可分片、可压缩、可降级(LoRa 只传关键字段 + 哈希,全文走后续高带宽路径)。
- 自动协议切换 ≠ 随便换 channel
要解决的是 路径选择问题,不是 if-else 列表:
• 链路代价:延迟、功耗、成功率、费用
• 消息属性:大小、紧急度、是否可丢、是否需确认
• 拓扑:直接可达 / 多跳 / 经 Gateway
• 安全:该路径是否满足端到端与元数据要求
「同一条消息自动换路径」可以,但要定义清楚:是 重试换路、分片分流,还是 多路径冗余发送(耗电/费流量)。
- Gateway Bridge 是产品核心,也是运维雷区
Linux/Windows 做多协议桥很正确,实际要处理:
• 地址空间翻译(蓝牙地址 ≠ IP ≠ LoRa node id)
• 信任边界(谁能桥、桥到哪、会不会变成后门)
• 存储转发容量与 GC
• 时钟与因果序(离线很久再上线)
• 桥节点本身成为 单点与审查/攻击面
建议定位: Gateway = 可选的超级 peer(store-and-forward + 协议转换),不是必须中心服务器。
- Offline First 的本质是 CRDT / 同步协议
「断网能聊、上线同步」听起来简单,工程上是:
• 消息 ID、去重、乱序
• 群组/会话状态合并
• 已读、撤回、编辑的冲突
• 磁盘与带宽配额(不能无限攒)
至少要有:append-only log + 幂等投递 + 会话级因果/向量时钟(或简化版 Lamport)。
全量 CRDT 可以后置,MVP 先保证「不丢、不重复、可最终一致」。
- Mesh 扩展性是物理限制
多跳 mesh 在移动设备上:
• 跳数一多,成功率断崖
• 广播风暴、路由表膨胀
• 手机电池扛不住「永远在扫、永远在转」
务实拓扑:
短距密集用 P2P;区域用少量固定 Relay/Gateway;远程走 Internet;LoRa 只走「控制面 + 极短消息」。
不要一上来做「全球自组织无限 mesh」。