问题标签 [rtcdatachannel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
52 浏览

webrtc - OBS WebRTC 数据通道未连接

我有一个项目需要 WebRTC 数据通道才能在 OBS 中工作。它在 Windows 上运行良好,但在 Mac 上无法连接。

一个简单的测试方法是在支持 webRTC 的浏览器中打开此页面:https ://mdn-samples.mozilla.org/s/webrtc-simple-datachannel/ 您应该能够连接,输入消息并发送和接收它。在 OBS 中,如果您添加带有地址的浏览器并尝试执行相同操作,则它不起作用。

调试时控制台中没有显示错误,但有趣的是这些日志显示在终端中:

[0516/215229.218359:ERROR:data_channel.cc(44)] 接受 maxRetransmits = -1 以实现向后兼容性 [0516/215229.218421:ERROR:data_channel.cc(49)] 接受 maxRetransmitTime = -1 以实现向后兼容性

任何帮助,将不胜感激。

0 投票
1 回答
74 浏览

javascript - WebRTC 有多少个通道以及使用了哪些传输?

我觉得WebRTC有2个频道:

  1. 信令通道(通过安全 TCP 传输的数据)
  2. 媒体通道(通过 DTLS 或 SRTP 传输的数据)

有更多的渠道吗?即“ DataChannel ”——可能用于文件和聊天共享?

如果有,它与传统的 VOIP 媒体频道有什么不同,它使用什么协议?

0 投票
0 回答
216 浏览

javascript - WebRTC DataChannel 在 Google Chrome 中始终处于“连接”状态

我正在尝试使用 webRTC 数据通道在两个本地对等方(在两个 chrome 选项卡中)之间交换数据,但它始终处于“正在连接”状态。但是,一切顺利的是firefox。

我在这里发现了一个类似的问题 - webRTC 数据通道在 chrome62 中不起作用,但仍然没有有效的解决方案

这是我的代码片段:

单击按钮时,出现此错误:

未捕获的 DOMException:无法在“RTCDataChannel”上执行“发送”:RTCDataChannel.readyState 在 HTMLButtonElement 处未“打开”

再次,在 Firefox 中一切都很好。我目前正在使用 chrome,因为它的chrome://webrtc-internals/功能

0 投票
0 回答
27 浏览

webrtc - 我可以编辑通过 webRTC 数据通道发送的消息吗?

有没有办法编辑 RTCDataChannel API 为 webRTC 发送的任何消息?

0 投票
1 回答
138 浏览

javascript - 如何在浏览器中使用自定义但部分支持的 MimeType 播放数据流?

从软件工程中引入这一点。被告知这个问题可能更适合stackoverflow。

我正在向另一个对等方发送视频数据流,并希望重新组合该数据并使该流成为视频元素的源。我使用 npm 包RecordRTC记录数据,并且每 1 秒得到一个 Blob 数据。

我通过 WebRTC 数据通道发送它,最初尝试使用MediaSource API 重新组合数据,但事实证明 MediaSource 不支持 mimetype 为video/webm;codecs=vp8,pcm. 关于如何重新组装这个流有什么想法吗?是否可以修改 MediaSource API?

我对这个数据流的唯一要求是音频使用 pcm 编码,但如果您有任何想法或问题,请告诉我!

PS我认为基于意见的质疑不适合stackoverflow,所以这就是我首先在那里发布的原因。

0 投票
1 回答
43 浏览

video - twilio 可以记录数据轨道以及视频和音频吗?

我的应用程序使用数据通道在视频通话期间在对等方之间发送多种类型的信息(文本消息、按钮按下、电话方向等)。我需要能够通过视频录制重播所有这些数据。我看不到使用 twilio API 记录/播放此数据的方法,但如果 twilio 支持此功能或已经考虑了实现它的最佳方法,我不想重建该功能。

0 投票
0 回答
24 浏览

javascript - RTCDataChannel 成功打开 - 但实际上并未打开

我正在尝试重新打开 RTCDataChannel 以响应前一个数据通道发出关闭事件。

我了解在许多情况下可能无法打开新频道。我预计createDataChannel在这种情况下会失败;或者,iceConnectionState会更改以指示失败,我可以重置/放弃连接。

我已经使用两个浏览器选项卡测试了这个逻辑。首先,我允许两个选项卡打开一个通道(协商成功,通道打开并支持数据传输)。然后我关闭一个标签。尽管其余对等点的通道按预期关闭,但我的乐观createDataChannel成功并且新通道发出了一个open事件。即使对等方未连接(数据无处可去),我也可以无限期地通过通道发送。readyState也仍然存在"open";这是关闭另一个选项卡后几分钟的真实情况!

我不知道为什么这个频道能成功打开。我注意到即使在对等点关闭后iceConnectionState仍然存在;disconnected这似乎与 Chromium 错误有关,failed由于无法排除未来候选人的到来,因此从未达到该状态。但是,我仍然希望通道在iceConnectionStateis时关闭/出错disconnected

为什么我能够在对等连接时创建数据通道disconnected?为什么不.send()引发错误?连接时如何拥有open频道disconnected?避免这种情况的最佳方法是什么?

谢谢!

在 Chrome 89.0.4389.76 上测试

0 投票
0 回答
33 浏览

node.js - RTC 数据通道无法在 aws ec2 上工作

我正在开发一个具有 Twilio Video 并使用 Websocket 和 RTC 数据通道的反应项目。一切都在我的本地网络上运行,但是当我将其部署到 AWS ec2 时,RTC 数据通道无法通过信令服务器相互传输数据。请提出我错的地方我已经在我的本地网络上用 3 台不同的电脑测试了我的应用程序,它正在本地网络上工作,比如通过 WebSocket 信号通过 RTC 数据通道和 Twilio 视频流传输数据

这是我的 Client.js

这是 serevr.js

0 投票
1 回答
323 浏览

javascript - 无法与 Node JS 服务器作为对等方建立 WebRTC 连接

我正在尝试使用 WebRTC 数据通道将从画布捕获的图像发送到我的 NodeJS 后端服务器。那就是我试图让我的服务器成为对等点。但由于某种原因,我无法建立连接。

客户端

这里两者captureImagedrawCanvas没有被调用。

服务器端

在这里,post 请求处理得很好,但从handleChannel未被调用。


当我运行它时,我没有收到任何错误,但是当我检查连接状态时,它永远显示“新”。我控制台记录了远程和本地描述,它们似乎都设置好了。我在这里做错了什么?

我对 WebRTC 很陌生,我什至不确定这是否是从服务器连续发送图像(用户网络摄像头的帧)和从服务器返回的正确方法,如果有人能告诉我更好的方法,请这样做。

canvas.toBlob()还有一件事,我怎样才能通过数据通道以低延迟发送图像 blob(从)。

0 投票
1 回答
59 浏览

javascript - WebRTC - 创建 RTC 数据通道的正确方法是什么?

我在需要创建数据通道的时候使用 WebRTC JS 应用程序和 stcuk。我有这部分代码实际上可以工作,但是 openRTCDataChannel 方法被执行了两次:

如果我评论第一次或第二次调用 openRTCDataChannel 方法,我的一些同行可以在他们之间交换数据,而有些则不能。

所以问题是,如果我想让我的代码工作,我需要以两种不同的方式执行两次 openRTCDataChannel 方法。我做错了什么,启动适用于所有浏览器的数据通道的最佳方法是什么?

任何帮助表示赞赏!