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

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

1. 原有方案回顾

在此之前,野火IM客户端使用的是 mars 连接库,该库能够同时支持 HTTPTCP 连接,但无法支持 TLSUDP

2. 安全问题无需担心

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

3. 新增连接方式

3.1. TLS 连接

TLS 方式强制使用 HTTPSTLS 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 ""