野火IM支持TLS与KCP连接方式

野火IM在原有连接方案的基础上,新增了对 TLS 和 KCP 两种连接方式的支持,以满足不同客户在不同网络环境下的需求。

1. 原有方案回顾

在此之前,野火IM客户端使用的是 mars 连接库,该库能够同时支持 HTTP 和 TCP 连接,但无法支持 TLS 和 UDP。

2. 安全问题无需担心

虽然原有连接方式不支持 TLS,但野火IM在传输安全方面已经做了充分的保障。我们采用了安全的加密方案对数据进行保护,包括 AES 或 SM2 加密算法,确保通信内容的安全性。

3. 新增连接方式

3.1. TLS 连接

TLS 方式强制使用 HTTPS 和 TLS over TCP,在野火原有数据加密的基础之上,再叠加一层 TLS 加密。

适用场景:

  • 对安全合规有强制要求,必须启用 TLS 的客户。

注意事项:

  • TLS 与普通连接方式 不能同时共存,只能二选一。
  • 普通客户建议使用原有的加密方案,不需要使用TLS方案。

3.2. KCP 连接

KCP 是一种基于 UDP 的可靠传输协议,能够在弱网环境下提供更好的连接表现。

适用场景:

  • 网络环境较差、丢包率较高、需要更低延迟的场景。
  • 普通客户不建议使用KCP,仅推荐网络差的客户。

特点:

  • 可以与 TCP 共存,即部分客户端使用 TCP,部分客户端使用 KCP,灵活部署。
  • 发送文件等操作仍需走 HTTP(S)。
  • Web/小程序 客户端不支持。

3.3. 国密支持

国密算法(TCP over 国密)的支持目前正在推进中,但由于缺少足够的测试条件,尚未完成完整验证。欢迎有条件的客户与我们合作,共同推进国密方案的开发和测试工作。

4. 如何开启

4.1. 开启 TLS

  1. 在 IM 服务的配置文件中,添加 SSL 证书配置;
  2. 添加 ssl_port 配置项;
  3. 打开 https_port 配置;
  4. 客户端调用 SDK 的 useTls 方法。

4.2. 开启 KCP

  1. 在服务端开启 KCP 的长连接端口和短连接端口;
  2. 注意在防火墙中放开对应的 UDP 端口;
  3. 客户端调用 SDK 的 setUseKcp 方法。

5. 总结

连接方式 传输协议 适用场景 与原有方案共存
原有方案 TCP + HTTP 通用场景 —
TLS TCP over TLS + HTTPS 强制 TLS 合规 ❌ 二选一
KCP UDP 弱网环境 ✅ 可以共存

根据您的实际网络环境和安全合规要求,选择合适的连接方式即可。

2018 © wildfirechat.net 京ICP备18060403号-1 all right reserved,powered by Gitbook该文件修订时间: 2026-05-22 19:11:11

results matching ""

    No results matching ""