NO IMAGE

開發WebRTC使用什麼語言?

工欲善其事,必先利其器。通常一提到WebRTC,大家潛意識中就是javascript,可能很多人認為webrtc 僅需要javascript。No,NO。事實上需要多種語言來實現不同的環境。

  關於使用什麼樣的語言,我們不好一下子解釋明白,讓我們看看這個圖,從環境中學習吧。
  這裡包括了伺服器端的應用和客戶端的應用。我們一個一個地聊。
  看看web app 吧
  Web app
  這也是大部分使用者想到的webrtc 應用,通過瀏覽器執行,當然包括了html和通常所說的。
  移動端 app
  當涉及到移動端 app的話,這裡有兩種方式來實現webrtc。 一種就是我們剛才說的Java Script
  最常見的方式是把webrtc嵌入在app的環境中,編譯成一個SDK。SDK採用的語言包括?
  • C, C
  • Java 支援安卓的環境開發
  • Objective-C 或者 Switft 支援蘋果的 iOS 開發
  當然也有人使用 C#,通過Xamarin開發。
  Embedded app
  嵌入式的裝置是一個比較有意思的應用場景。很多情況下,可能因為很多原因,使用者需要把WebRTC 嵌入到其他的裝置中。兩種常用的開發語言:
  • C, C 如果使用者經常看看 webrtc.org 的程式碼,你就會發現這些程式碼可以直接使用,方便!
  • 其他語言可以支援 WebRTC 協議的,Go 浪 是否值得試試。
  當然大部分環境下,C 語言是最合適的開發語言。
  TURN server
  STUN 和 TURN 伺服器端是必須的。大部分情況下,你不需要在這些伺服器端做任何修改,當然也不會做重新編譯。使用僅僅是使用它。這裡無需其他開發語言介入。大部分開源專案最受歡迎的語言還是C 語言。木得選。
  Media server
  媒體伺服器有非常大的區別,我們目前大部分情況下討論的是幾個開源的webrtc 媒體伺服器Jitsi/Kurento和後來的Kurento/Janus。 當然 kuento 被收購就不提了,傷心!
  媒體伺服器選擇的語言根據平臺的不同有所不同。Jitsi 是基於Java。Kurento 是基於C/C ,還有前端語言Java或者Node.js。Janus 大部分使用C 語言。
  媒體伺服器通過REST 介面或者Websocket來和終端進行通訊,你可以使用任何你喜歡的語言來開發。當然目前最受歡迎的就是Node.js。
  App/Signaling server
  信令伺服器用來實現移動app, web app 或者嵌入式app的信令管理和通訊。它負責TURN伺服器的處理,管理使用者密碼,以便來控制媒體伺服器。
  答案還是非常簡單,使用你自己喜歡的語言來開發,例如:
  • Node.js
  • Java
  • PHP
  • Erlang
  • Ruby 和 Python
  • Net
  總之一句話,按照自己的喜好,使用什麼語言方便就使用方便就使用什麼語言。
  當然最後看看PortSIP 的WebRTC 閘道器,肯定有驚喜!