angularjs 使用Ruby on Rails后端构建webRTC应用程序

von4xj4u  于 2022-10-31  发布在  Angular
关注(0)|答案(1)|浏览(188)

我想为我目前正在开发的一个Web应用程序实现一个点对点视频聊天功能。在做了研究之后,我决定使用webRTC的Javascript API。该应用程序在前端使用AngularJS,在后端使用Ruby on Rails。在构思该应用程序时,我遇到的主要问题是将前端与后端连接起来。以及创建和维护用户流之间的连接。
对于网络的信令方面,我想利用ActionController::Live和Ruby gem em em事件源将实时消息从服务器推送到用户,并指示他们的哪些连接在线。然后,当他们准备好建立连接时,他们将创建一个自定义房间,URL将被发送到他们希望连接的用户,创建他们的报价。一旦用户单击发送给他们的链接,他们将返回他们的答案。当用户响应时,ICE候选进程将为每个用户开始。您认为这是建立PeerConnection的足够的信令通道吗?我还遗漏了其他哪些主要参与者?
根据我对WebRTC的RTCPeerConnection所做的研究,一旦建立了初始连接,并且两个用户都有对应于他们的流的公共IP地址,连接就通过RTCPeerConnection来维持,更具体地说,是通过getPeerConnection()。我错了吗?还有其他我没有考虑的因素吗?
WebRTC通过getUserMedia方法使创建MediaStreams的过程变得非常简单。一旦创建了这些流,就可以将它们添加到已建立的RTCPeerConnection中。既可以作为本地流,也可以作为远程流。
如果你有任何其他的建议给我,请让我知道。我想创建这个功能使用webRTC,它似乎是如此有趣

lpwwtiir

lpwwtiir1#

当然有很多方法来处理呼叫信令,所以我不打算具体评论你的方法。我要说的是,如果你计划支持ICE涓流,ICE候选者将在过程中很早就开始流动,所以当你试图连接到对等体时,你真的需要对等体之间几乎立即开放的信令通道。
我们在MQTT之上开发了WebSphere解决方案,MQTT是一个开放的、非常简单的发布/订阅协议。您可以使用任何开放的MQTT代理与该协议,并且有许多开源组件可用于使WebRTC开发非常简单,包括AngularJS WebRTC模块(Angular -实时通信),我们还发布了一个简单的基于JSON的协议作为这个开源解决方案的一部分。你可以看一下signaling protocol。你也可以在这里(www.wasdev.net/webrtc)阅读关于整体解决方案的更多细节。在这里你可以找到基本的JavaScript库以及一些开源的示例解决方案。所有这些都可以在github上派生。
一般来说,您希望在一个协议上构建信令,该协议允许您随着时间的推移而扩展。它应该能够很好地用于Web和移动的应用程序。根据我们的经验,我们花了很多时间来使所有这些工作正常进行,我们的目标不仅是支持点对点呼叫,而且支持使用媒体资源,如后端的Dialogic的XMS PowerMedia服务器,以实现多路支持。我们还需要通过SIP中继支持联盟,因此我们希望确保该协议可以轻松转换为SIP信令,同时还支持VP 8和H.264等媒体协议之间的转码。
请注意,如果您只希望支持WebRTC客户端之间的对等调用,那么您只能使用这些rtcomm开源组件,包括一个开放的MQTT代理,并为您节省大量的时间。您可以在几个小时内启动并运行一些东西。启用的0服务还包括一个内置的MQTT代理,并支持上面链接的开放式WebRTC信令协议。您可以使用WebSphere进行开发,并在生产环境中免费部署一个这样的服务器。如果愿意,您还可以使用Ruby on Rails和Liberty。
即使您决定不使用Liberty,您也可以使用所有开源组件沿着Mosquito之类的组件(这是一个开放源码的MQTT代理)来快速地开发一个解决方案。还有许多MQTT客户机可用于许多不同的编程语言,包括JavaScript、Java如果您决定构建自己的信令协议,您可能仍然会发现这些开源组件有助于了解我们如何实现与WebRTC PeerConnection的集成。

相关问题