WebRTC 上的信令通道
Posted
技术标签:
【中文标题】WebRTC 上的信令通道【英文标题】:Signaling channel on WebRTC 【发布时间】:2014-01-25 13:43:50 【问题描述】:我的目标是创建一个 WebRTC 聊天(视频/音频)应用程序,我看到的大多数教程和演示都使用以下信号通道:
signaling.simplewebrtc.com:8888
我什至找到了this 很棒的演示,其中开发人员表示它不依赖于这个信号通道,但是当我浏览代码时我发现它在那里。
谁能解释一下,我怎样才能用我自己的信号通道代替它?
【问题讨论】:
您需要做的就是添加一个信令服务器来交换 SDP 和候选冰。通过一些简单的谷歌搜索,您可以使用大量的选项和教程。 【参考方案1】:我不完全理解你的问题。我猜你提供的 URL 指向一个 websocket 服务器。 Websockets 通常用于发送信号,因为它们提供永久的全双工连接(这意味着服务器能够在没有先前请求的情况下将消息推送到客户端)。
由于 NAT 和防火墙等原因,您必须在想要建立 RTCPeerConnection 的两方之间交换网络信息……如何交换该信息不是 WebRTC 规范的一部分。你可以使用任何你想要的协议,HTTP、Websockets,甚至是电子邮件(但是实现起来会很丑:))。但是,如果您想使用 node.js 构建自己的信号服务器,您可以查看我目前正在编写的教程。它详细解释了如何使用 WebRTC 和托管在 uberspace.de 上的节点服务器设置您自己的非常简单的视频聊天:
Tutorial: Create your own Videochat-Application with html and javascript
如果你使用我的教程,如果你能告诉我它是否可以理解,那就太好了。
编辑: 由于我仍然收到对这个旧教程的请求,请使用像这样的最新教程: https://www.baeldung.com/webrtc
https://www.html5rocks.com/en/tutorials/webrtc/basics/
【讨论】:
如果我想构建 WebRTC 应用程序并且我想使用 SIP Servlet 作为信令?由于我创建了连接到 sip servlet 的 android jain sip 客户端。我可以这样做吗?在此先感谢:) 正如我在上面写的,你可以使用任何你想要的技术,只要你能够在客户端之间交换文本数据。当然,您需要从客户端访问该数据,即从 javascript @FelixHagspiel,教程链接失效。我收到带有system/database/connectors/mysql.php on line 54
的未捕获异常错误页面。
@BReddy 这个教程已经5年多了,建议你找一个新的,比如这个blog.logrocket.com/…
兄弟,您博客的链接无法加载:'(【参考方案2】:
请查看可用于 WebRTC 的 excellent blog on the signaling options。
我有listed a few important blogs and sample WebRTC applications,您可能还想查看它以帮助您构建聊天应用程序。
【讨论】:
【参考方案3】:-
我从Install NodeJS 安装了nodejs,并在signalmaster安装了所需的依赖项
在 cmd 中运行 node server.js
。
服务器开始运行。
PS:更改 simplewebrtc.bundle.js 中存在的 url 选项
如果您遇到任何问题,请告诉我
【讨论】:
【参考方案4】:我想知道为什么到目前为止还没有人提到这一点。您还可以使用基于 sip 框架的 webrtc 库和客户端,例如 sipml5、jssip 等。此外,由于您提到您希望自己的服务器设置来满足信令请求,您将有多种基于 websockets 的 sip 服务器可供选择,例如 officeip、kamailio、mobicents 等。
【讨论】:
【参考方案5】:您可以在https://code.google.com/p/sipservlets/wiki/HTML5WebRTCVideoApplication 尝试修改 Mobicents 随附的最新应用程序,以便您进行聊天和视频聊天。
【讨论】:
以上是关于WebRTC 上的信令通道的主要内容,如果未能解决你的问题,请参考以下文章
WebRTC[50] - WebRTC支持SVC时SDP信令的协商过程