使用 WebRTC 的 Web 应用程序中的视频通话功能

Posted

技术标签:

【中文标题】使用 WebRTC 的 Web 应用程序中的视频通话功能【英文标题】:Video Calling facility in Web application using WebRTC 【发布时间】:2013-10-03 05:24:50 【问题描述】:

尝试使用 WebRTC 在我的运行在 Intranet(JSF 和 JBoss)上的 Web 应用程序中开发或提供视频通话功能。

现在,我有几个简单的问题: 一种。使用 webRTC 需要在服务器上托管任何类型的应用程序代码。我是否能够在不使用任何类型的服务器的情况下开发应用程序。 湾。 Intranet 上的用户和 Internet 上的用户是否会使用此 WebRTC 进行通信。 C。如果该过程中的任何地方都没有涉及服务器,那么我将如何通知另一个用户他需要访问此 URL 才能与我通信。

任何人都可以阐明这些让我开始..我有点困惑。已经浏览了各种文档和链接,但仍然有点困惑......

【问题讨论】:

想知道为什么 DOWNVOTE ??... 【参考方案1】:

如果您已经使用 JBoss,我建议您查看 Mobicents SIP Servlets(它在 JBoss 7 上运行)和 WebRTC 演示应用程序https://code.google.com/p/sipservlets/wiki/html5WebRTCVideoApplication

在 SIP 中使用的信令,在媒体点对点时通过服务器

【讨论】:

【参考方案2】:

A.是的,您需要服务器端功能。什么服务器以及如何操作取决于您。 (例如,您可以使用 node.js 和 websockets) 下面的代码给出了服务器应该能够处理的功能示例

var mess = JSON.parse(message.utf8Data);
switch(mess.type)
    case "answer":
        allClients.forEach(function (client)
           //Locate the correct client and send the answer to it
        );
        break;
    case "offer":
        allClients.forEach(function (client)
            //Locate the correct client and send the offer to it   
        );
        break;
    case "candidate":
        allClients.forEach(function (client)
            //Locate the correct candidate and send the candidate to it
        );
        break;

B.是的。但我确信有防火墙设置可能会带来麻烦。无论如何,webRTC 使用 ICE 在许多此类情况下提供帮助。您将看到它产生了许多“候选”消息,其中包含有助于建立对等连接的信息。实际上,由您的服务器将这些候选消息中继给对等方。

C.嗯,有一个服务器参与......

【讨论】:

【参考方案3】:

每个 WebRTC 应用程序都需要一个信令服务来使对等方能够交换媒体和网络元数据。

为了应对 NAT 和防火墙,WebRTC 应用程序可以使用 STUN 和 TURN 服务器,但对于 Intranet,您可能不需要这些。

我维护了一个WebRTC resources 列表,其中包含指向教程和代码示例的链接。

【讨论】:

以上是关于使用 WebRTC 的 Web 应用程序中的视频通话功能的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过 WebRTC 或 Web 套接字保存视频通话

基于WebRTC开源框架的实时视频聊天项目,搭建私人实时通信服务

reSipWebRTC

IOS技术分享| 在iOS WebRTC 中添加美颜滤镜

WebRTC介绍及简单应用

在 Web 浏览器上使用带有 Janus 或 WebRTC 的 GStreamer 进行实时视频流