问题标签 [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 投票
1 回答
1300 浏览

android - 无法使用 DataChannel 从 Chrome 网络应用程序到 Android 应用程序进行 webrtc 调用

我在: https ://github.com/wennycooper/wsProject上写了一个 webrtc webapp(带有视频 + 音频 + 数据通道)

我也在上面写了一个 Android webrtc 应用程序:
https ://github.com/wennycooper/webrtcClient

webapp-to-webapp 调用工作正常。没有数据通道的 androidapp-to-androidapp 也可以正常工作。

我试图将数据通道代码添加到 androidapp 并从 webapp 调用 androidapp。当被调用者收到Offer时,它显示以下错误:

完整的 adb 日志在这里:
https ://s3-us-west-2.amazonaws.com/kkwebrtc/webrtcAndroid_callee.txt

我不知道是怎么回事??
任何人都可以提供带有数据通道的工作示例,将不胜感激。

0 投票
3 回答
1393 浏览

javascript - Webrtc datachannels:在传输大文件时将数据保存在文件中

我正在使用 WebRTC 数据通道来构建文件传输服务。

对于小于 30 Mb 左右的较小文件,它的运行非常好。现在在接收端,我只是将文件数据保存在内存中,当所有数据传输完毕后,我保存文件。

有点像这样:

所以我想将数据保存在磁盘上的文件中,然后直接写入该文件。但是我该怎么做呢?

0 投票
1 回答
975 浏览

android - WebRTC onMessage() 不会在 Android 上触发

我试图在 Android 上实现数据通道。我使用数据通道成功地将数据从 android 发送到 web。

但是,每当我尝试将数据从网络发送到 android 时,android 都不会收到数据,并且永远不会触发 onMessage()。

我不明白为什么会这样。这是我实现 DataChannel.Observer 的方法。

我为每个 PeerConnection 对象创建对象。我有这个包含 PeerConnection 对象的类。

这就是 PcObserver 类的样子。

我想我做错了什么peer.dc.registerObserver(dcObserver);但我不知道是什么。

0 投票
2 回答
2051 浏览

ios - RTCDataChannel 不工作 iOS

我正在使用 RTCDataChannel。但是我通过通道发送的消息没有在其他对等方接收。

这是代码:

0 投票
3 回答
876 浏览

javascript - 为二进制块创建元数据以通过 WebRTC 数据通道发送

我在两个浏览器之间有一个数据通道连接,并且想将文件分成块并将它们发送到客户端/从客户端发送。

我可以读取文件并将其分解成块就好了。但是我需要一种让接收客户知道的方法

  1. 数据块与哪个文件相关(唯一标识符)。

  2. 块适用于重建的位置(索引号)。

在浏览器中传输二进制数据时,似乎整个有效负载必须是二进制的。因此,例如,我不能创建具有上述属性的 JSON 对象,并具有具有data实际二进制块的属性。

我想我需要将文件块包装到包含标识符和索引的辅助二进制 blob 中。然后接收客户端将解码第一个包装器块以检查元数据,然后根据该信息处理实际的文件块。

如何在浏览器中执行此操作?我已经做了很多谷歌搜索,但似乎找不到任何关于这方面的信息,所以想知道我是否可能忽略了一些可以帮助简化这个过程的东西?

0 投票
1 回答
1731 浏览

webrtc - 如何关闭 webrtc 数据通道?

我不能使用以下方法。

因为我只使用数据通道(不使用 getUserMedia)

有没有办法关闭数据通道?

0 投票
1 回答
632 浏览

compression - 使用 gzip 压缩的 WebRTC 数据通道

permessage-deflate数据在通过 WebSocket 发送到服务器之前在内部使用扩展名进行压缩。WebRTC 怎么样?数据通道 API 是否支持压缩?

0 投票
1 回答
3255 浏览

javascript - 已实现信令的工作 Hello World WebRTC 数据通道示例

目的是使其成为社区 Wiki帖子,并保持最新状态,以便有兴趣使用 WebRTC 数据通道实现 JSON 消息浏览器到浏览器 (p2p) 通信的开发人员拥有简单而实用的示例。

WebRTC 数据通道是实验性的,仍处于草案阶段。目前,网络似乎是过时 WebRTC 示例的雷区,如果开发人员正在尝试学习 RTCDataChannel API,则更是如此。

现在在兼容WebRTC 的浏览器上运行的简单但功能强大的 1 页示例似乎很难找到。例如,一些示例省略了信号实现,其他示例仅适用于单个浏览器(例如 Chrome-Chrome),许多示例由于最近的 API 更改而过时,还有其他示例非常复杂,以至于阻碍了入门。

请发布符合以下标准的示例(如果不符合,请说明):

  1. 客户端代码为 1 页(200 行或更少)
  2. 服务端代码1页,引用技术(如node.js、php、python等)
  3. 实现信令机制,引用协议技术(如WebSockets、长轮询GCM等)
  4. 运行跨浏览器(Chrome、Firefox、Opera 和/或Bowser)的工作代码
  5. 最小的选项、错误处理、抽象等——意图是一个基本的例子
0 投票
1 回答
1320 浏览

webrtc - WebRTC 数据通道缓冲已满

首先,我希望你明白我不擅长英语。

对于文件传输,在 Mesh 拓扑中,在 Chrome 中,

当缓冲量为 16MB 时,通道关闭并显示错误消息。

“未捕获的 NetworkError:无法在 'RTCDataChannel' 上执行 'send':无法发送数据”
(它在 chrome 中,而不是在 firefox 中。)

如何发送文件(超过 16MB)?

文件工作者.js

文件发送者

0 投票
0 回答
199 浏览

webrtc - 当配置可靠 = true 时 RTCDataChannel 是否比 Websockets 更快?

我正在阅读并试图了解 WebRTC 的 RTCDataChannel。据我了解,Websockets 位于 TCP 之上,并且比作为 WebRTC 基础的 SCTP 具有更高的延迟,例如,当在服务器和浏览器之间发送二进制数据时,这也可能是 WebRTC 中的 2 个对等点。当 RTCDataChannel 设置为不可靠模式(可能丢包但速度更快)时,其底层 SCTP 变得类似于用户数据报协议 (UDP),当设置为可靠时,它变得类似于 TCP。

RTCDataChannel 在配置为可靠(“类似 TCP”)时是否仍然比 Websockets (TCP) 快,如果是,那么快多少?