
關(guān)于使用什么樣的語言,我們不好一下子解釋明白,讓我們看看這個圖,從環(huán)境中學(xué)習(xí)吧。

這里包括了服務(wù)器端的應(yīng)用和客戶端的應(yīng)用。我們一個一個地聊。
看看web app 吧
Web app
這也是大部分用戶想到的webrtc 應(yīng)用,通過瀏覽器運行,當(dāng)然包括了html和通常所說的。

移動端 app
當(dāng)涉及到移動端 app的話,這里有兩種方式來實現(xiàn)webrtc。 一種就是我們剛才說的Java Script
最常見的方式是把webrtc嵌入在app的環(huán)境中,編譯成一個SDK。SDK采用的語言包括?
- C, C++
- Java 支持安卓的環(huán)境開發(fā)
- Objective-C 或者 Switft 支持蘋果的 iOS 開發(fā)
當(dāng)然也有人使用 C#,通過Xamarin開發(fā)。

Embedded app
嵌入式的設(shè)備是一個比較有意思的應(yīng)用場景。很多情況下,可能因為很多原因,用戶需要把WebRTC 嵌入到其他的設(shè)備中。兩種常用的開發(fā)語言:
- C, C++ 如果用戶經(jīng)?纯 webrtc.org 的代碼,你就會發(fā)現(xiàn)這些代碼可以直接使用,方便!
- 其他語言可以支持 WebRTC 協(xié)議的,Go 浪 是否值得試試。
當(dāng)然大部分環(huán)境下,C 語言是最合適的開發(fā)語言。
TURN server

STUN 和 TURN 服務(wù)器端是必須的。大部分情況下,你不需要在這些服務(wù)器端做任何修改,當(dāng)然也不會做重新編譯。使用僅僅是使用它。這里無需其他開發(fā)語言介入。大部分開源項目最受歡迎的語言還是C 語言。木得選。
Media server

媒體服務(wù)器有非常大的區(qū)別,我們目前大部分情況下討論的是幾個開源的webrtc 媒體服務(wù)器Jitsi/Kurento和后來的Kurento/Janus。 當(dāng)然 kuento 被收購就不提了,傷心!
媒體服務(wù)器選擇的語言根據(jù)平臺的不同有所不同。Jitsi 是基于Java。Kurento 是基于C/C++,還有前端語言Java或者Node.js。Janus 大部分使用C 語言。
媒體服務(wù)器通過REST 接口或者Websocket來和終端進行通信,你可以使用任何你喜歡的語言來開發(fā)。當(dāng)然目前最受歡迎的就是Node.js。
App/Signaling server

信令服務(wù)器用來實現(xiàn)移動app, web app 或者嵌入式app的信令管理和通信。它負責(zé)TURN服務(wù)器的處理,管理用戶密碼,以便來控制媒體服務(wù)器。
答案還是非常簡單,使用你自己喜歡的語言來開發(fā),例如:
- Node.js
- Java
- PHP
- Erlang
- Ruby 和 Python
- Net
總之一句話,按照自己的喜好,使用什么語言方便就使用方便就使用什么語言。
當(dāng)然最后看看PortSIP 的WebRTC 網(wǎng)關(guān),肯定有驚喜!
