探索基于pion开发的WebRTC应用的建连过程

本文永久链接 – https://tonybai.com/2024/12/26/exploring-the-connection-establish-process-of-webrtc-app-built-with-pion 在《WebRTC第一课:从信令、ICE到NAT穿透的连接建立全流程》一文中,我们从理论层面全面细致地了解了WebRTC连接建立的完整流程。这个流程大致可以分为以下几个阶段: 与信令服务器的交互 ICE候选项的采集、交换与排序 形成ICE候选检查表、进行连通性检查,并最终确定最优候选路径 这个过程的复杂性不言而喻。即便多次阅读全文,读者可能仍难以形成深入的理解。因此,如果能够配上一个真实的示例,相信会更有助于读者全面把握这一过程的细节和原理。 ...

December 26, 2024 · 13 min · Tony Bai

WebRTC第一课:从信令、ICE到NAT穿透的连接建立全流程

本文永久链接 – https://tonybai.com/2024/12/14/webrtc-first-lesson-how-connection-estabish 在上一篇文章《WebRTC第一课:网络架构与NAT工作原理》中,我们介绍了WebRTC的网络架构和NAT的基本概念,学习了WebRTC采用端对端(P2P)的通信模型,知道了NAT(网络地址转换)的概念以及给像WebRTC这样的直接P2P通信带来的挑战。 在实际的网络环境中,建立WebRTC这样的端到端连接的确并非易事。因此,在这篇文章中,我将继续上一篇文章的内容,全面探讨一下WebRTC连接建立的全流程,涵盖信令交换、ICE候选信息采集和选择、NAT穿透的各个关键步骤,希望能给大家理解WebRTC技术栈带去帮助。 ...

December 14, 2024 · 21 min · Tony Bai

CHECKLIST的不实用之处

CHECKLIST多是类似如下的东西,举一个代码CHECKLIST的例子: 参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字。 - 参数命名、顺序是否合理? - 参数的个数是否太多? - 是否使用类型和数目不确定的参数? - 是否省略了函数返回值的类型? - 函数名字与返回值类型在语义上是否冲突? 我们常常遇到的一个问题就是在进行source peer review的时候是根据每一个CHECK item去从头到尾看一遍代码(如果有50个CHECK items的话,那就从头到尾看50遍代码)还是记住所有CHECK items,然后只看一遍代码,显然我觉得后者在目前实施的可能性是最大的,也是实施最普遍的。 ...

August 15, 2008 · 2 min · Tony Bai