聊天软件上的 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/
欢迎留言讨论


<<:  【履历要点 i 】来自大公司资深 Recruiter 的建议

>>:  离职倒数27天:日本人为什麽对买房没兴趣

VirtualBox VM 安装 ChromeOS

ChromeOS 版本 Download Cr OS Linux 2.4.1290 (x86) Li...

[DAY24]安装PGAdmin(02)

接着我们要利用PGADMIN连线我们Heroku上的资料库插件 打开PGADMIN,输入昨天输入的密...

第二十四天:使用 TeamCity 监看覆盖率变化

昨天我们在 Build Step 里开启 Coverage 的功能,让 TeamCity 在运行测试...

说话的艺术

虽然在Day 9 聊了一些团队中的提问文化,我大原则仍希望我的团队内大家是开放的风气,什麽都可以问,...

[ASP.Net MVC] 取得 Request 常用资讯 (IP, 作业系统, 浏览器, 呼叫网址)

在建置网页的时候,有时候会需要知道来源端它的环境是什麽,可能是需要记录来源的 IP,或是依照来源的作...