libdatachannel 快速入门精简版快速入门只保留核心概念与上手步骤。ICE/DTLS/SCTP、媒体 Track、WebSocket 内部实现、线程与调试等见 libdatachannel完整文档.md。目录一句话了解 libdatachannel核心概念信令 → P2P 连接环境要求与构建5 分钟上手Data ChannelC API 与 C API配置与后端速览常见问题下一步1. 一句话了解 libdatachannellibdatachannel是轻量级C/C WebRTC 库实现Data Channel、媒体传输RTP/RTCP与WebSocket依赖少可与 Firefox/Chromium/Safari 等浏览器互通。适合原生 App 与浏览器点对点实时通信无需引入完整 Google libwebrtc。为什么用 libdatachannel轻量模块化可只用 Data Channel 或 WebSocket跨平台Linux、macOS、Windows、iOS、Android双 APIC 与 CTLS/ICE 后端可换OpenSSL、Mbed TLS、libjuice 等2. 核心概念信令 → P2P 连接WebRTC不负责信令——你需要自建通道交换 SDP 与 ICE Candidate常用 WebSocket/HTTP。阶段做什么1. 信令交换 Offer/AnswerSDP与 ICE 候选2. ICENAT 穿透选出可用路径3. DTLS建立加密通道4. SCTP / RTPData Channel 或媒体流信令服务器ICE DTLS SCTPPeer APeer B主要类PeerConnection连接、DataChannel可靠/不可靠数据、Track音视频、WebSocket独立信令或实时通道。3. 环境要求与构建项说明构建CMake 3.13、C17 编译器子模块git clone --recursive可选OpenSSL / GnuTLS / Mbed TLSlibjuice默认 ICE或 libnicegitclone--recursivehttps://github.com/paullouisageneau/libdatachannel.gitcdlibdatachannelmkdirbuildcdbuild cmake..cmake--build.-jsudocmake--install.# 可选示例在examples/client、server、streamer 等常配合examples/signaling-server-*做信令。4. 5 分钟上手Data Channel4.1 最小 C 流程#includertc/rtc.hpprtc::Configuration config;config.iceServers.emplace_back(stun:stun.l.google.com:19302);rtc::PeerConnectionpc(config);pc.onLocalDescription([](rtc::Description sdp){// 通过信令发给对端});pc.onLocalCandidate([](rtc::Candidate candidate){// 通过信令发给对端});autodcpc.createDataChannel(chat);dc-onOpen([](){/* 可发送 */});dc-onMessage([](automsg){/* 处理消息 */});// 对端 SDP/Answer 与远端 Candidate 通过 pc.setRemoteDescription / addRemoteCandidate 注入4.2 跑官方示例启动信令服务如examples/signaling-server-node终端 Aexamples/client或examples/copy-paste终端 B浏览器打开对应 Web 示例或第二个 native client看到 DataChannelopen后即可send()文本或二进制单条最大约 16KB大文件需分片。5. C API 与 C APIC (rtc.h)C (rtc.hpp)风格句柄 回调RAII、std::function适用嵌入 C 项目、FFI新 C 项目首选两者能力等价C API 需关注rtcDelete*与回调线程。6. 配置与后端速览配置项典型值iceServersstun:...、turn:...复杂 NAT 需 TURNTLS 后端CMake-DUSE_GNUTLS1/ OpenSSL / Mbed TLSICE默认 libjuice可选 libnice7. 常见问题现象处理一直connecting检查信令是否交换完整STUN/TURN 是否可达浏览器连不上SDP 方向、mid、候选格式需与浏览器一致仅局域网通配置 TURN 服务器链接错误确认cmake --install与find_package(datachannel)8. 下一步官方paullouisageneau/libdatachannel — README、examples/、pages/文档。建议顺序数据通道 Hello World → PeerConnection 架构 → 信令工作流 → Data Channel 深入。