iT邦幫忙

2021 iThome 鐵人賽

DAY 4
1
Mobile Development

如何用下班時間開發App經營副業系列 第 4

聊天軟體上的 WebRTC

為什麼要用 WebRTC

我們的 App 是聊天軟體,一開始只有文字對話,那時用 socket.io 就夠了。後來要加上一對一語音的功能。因為 socket.io 不能互傳 raw data ,不適合用來做語音傳輸,我們用了 WebRTC,目前網路電話應該大部分也都是用 WebRTC。

什麼是WebRTC

WebRTC 全名 Web Real-Time Communication,特別的地方在於,不用任何plugin ,就可以讓兩個瀏覽器進行實時影像、聲音等資料交換的技術。應該大部分的網路電話都是用這個。目前是 Google 在維護的 Open Source,所以誰都可以免費用。

我們有哪些地方用到 WebRTC

我們的 App 裡有三個地方實際用到 WebRTC

  1. 一對一通話
  2. 五人同時通話
  3. 一對二十直播

WebRTC 實際上是建立ㄧ對一連結的,所以五人通話,實質上是 5x4/2=10 個連結。一對二十人直播,就是二十個連結。

要準備什麼

WebRTC 是幫忙建立 P2P連結 的工具,要開始用之前,要自己準備 STUN Server 跟 TURN Server。具體要做的事簡單說明如下:

  1. 通話兩邊透過我們提供的 server 來交換IP,這就是 STUN server 的功用
  2. IP交換成功,建立連結後,就可以直接開始通話。大概有八成是這種情況。
  3. 剩下的兩成,因為各種原因(通常是security問題),兩邊無法直接知道對方IP,這時就要通過第三方來通話,這個第三方就是我們提供的 sever ,也就是 TURN Server。

要用多少錢

上一段的步驟裡,如果在第二步成功的話,我們幾乎沒什麼成本。但如果要用到 TURN Server ,就是實際主要會發生費用的地方,用越多花越多。
但是總不能因為這樣就不給這種用戶用,人家只會覺得我們有bug而已。所以如果要用的人,可能要自己評估能不能回本。

最新文章會分享在臉書:https://www.facebook.com/gigi.wuwu/
歡迎留言討論


上一篇
React Native 優缺點,如果現在開始做會選哪個
下一篇
沒想太多就用了 MongoDB 的結果 (上)
系列文
如何用下班時間開發App經營副業30

尚未有邦友留言

立即登入留言