你喜欢用什么语言进行WebRTC开发?

作者:Tshahi Levent-Levi(原文链接

翻译:刘通

原标题:What's Your Preferred Language for WebRTC Development?

 

WebRTC不是只能用JavaScript写。

languages1

通常不会有人直接我这个问题,但是偶尔的时候也会被提起。特别是当有人想问一个语言适不适合WebRTC的时候。

上面那个问题的答案基本上都是肯定的,我认为需要做一个简单的解释来介绍一下各种编程语言都适合WebRTC中的哪些部分。

我们从这一个小小的图表开始,展示了哪些与WebRTC相关的实体,并且我们从此处着手开始讨论。

languages2

网页应用(Web app

languages3

网页应用是大多数人提到WebRTC的时候一个想到的东西。

它在浏览器中运行,并且从HTML及其衍生工具加载。

而这意味着你最后要使用的语言就是JavaScript。

移动端应用(Mobile app

languages4

当探讨移动端的时候,有两种使用WebRTC的方法。第一个方法是将Web应用移植到移动设备的浏览器中,这将会把你带回到JavaScript。

更为常见的方法是在应用程序中使用WebRTC。你需要编译并链接WebRTC代码库作为SDK。

所以可以用什么语言呢?

# WebRTC低层的内容由C, C++编写。你很有可能不需要处理这个问题(因为它很有可能会直接工作,或者你把它外包给别人来做)

# Java用来开发安卓原生应用

# Objective-C和/或Swift用来开发iOS原生应用

有了这些方法,应该已经有人为你将WebRTC封装入这些平台里了。

嵌入式应用(Embedded app

languages5

事情在嵌入式中变的有趣了。

在一些用例中,你会想要你的嵌入式设备运行WebRTC。

这里有两个主要的方法决定选择的语言:

1. 如果你移植了webrtc.org的代码库并且想要使用它的话就要用C, C++。然后无论你喜欢什么都可以往上添加。

2. 在自行实现你所需要的WebRTC协议的时候,你可以使用任何你想用的语言。

一般来说,你需要降低抽象层次尽可能的接近机器语言。

TURN服务器(TURN server

languages6

WebRTC通信业需要STUN和TURN服务器。最有可能的情况是—你除了编译,陪吃和运行STUN和TURN服务器以外你不需要做任何事情。

所以在此处不需要任何的编程语言。

虽然广受欢迎的开源选项都是用C语言写的,但是这没关系。

媒体服务器(Media server

languages7

在这里编程语言取决于媒体服务器本身。Jitsi主要是基于Java的。Kurento是用C/C++写的,而其前端通常是用Java或者Node.js。Janus主要是用C写的。但是大多数情况下你都不需要在意这些。

媒体服务器通常是通过REST或WebSocket与你进行通信的实体,因此你可以在控制端使用任何你喜欢的编程语言。

应用/信令服务器(App/Signaling server

languages8

有趣的是,这是问题主要针对的地方。应用程序和/或信令服务器的功能是将所有东西缝合在一起。它提供的Web应用程序,与移动和嵌入式应用进行通信。它提供了TURN服务器的细节并处理任何临时密码,它控制着媒体服务器。

这里的回答也很简单—你可以用你任何想用的语言。

# Node.js和JavaScript是很好很受欢迎的选择

# Java似乎是企业非常喜欢用的语言,虽然我不懂是为什么

# PHP很合适。它被许多WordPress插件用于WebRTC

# Erlang是那些喜欢冒险的开发者喜欢采用的语言

# Ruby和Python也是很好的选择

# .Net是我曾用用过一两次的

总的来说,任何你可以用来搭建网站的语言都可以用来做WebRTC服务。

 

填写常用邮箱,接收社区更新

WebRTC 中文社区由

运营