WebRTC数据通道服务与客户端UDP通信。目前是否可能?

9
有没有可能在Node.js上使用WebRTC数据通道,以模仿WebSocket的功能,但使用UDP?
本质上,我想要一个运行在Node.js上的服务器,通过JavaScript,浏览器客户端可以建立全双工双向UDP连接。
我的问题与8个月前的这个问题相同。我重新发布它,因为唯一的答案是:
“理论上,您应该能够做到这一点。但是,您需要一个支持WebRTC数据通道的节点模块,以便您可以像连接任何其他对等方一样连接它。不幸的是,在当前的模块中,我没有看到实现数据通道的模块。”
你们有没有知道这样的模块?在我的搜索中,我找到了一些带有“webrtc”和“datachannel”单词的节点模块,但它们看起来不像所需的内容,它们似乎是针对特定需求而设计的。

我觉得我在某个地方见过这个问题。还在寻找答案。 - Willem
你找到答案了吗? - Willem
不。我们决定如果要使用UDP套接字,甚至只能在Google Chrome上运行,我们可能会使用Google Chrome chrome.sockets.udp - user3147646
2个回答

4

这个项目非常活跃,似乎正在承担将整个WebRTC堆栈导入node.js的任务。还有这个项目,但看起来相当不活跃。

很想知道是否满意,如果您正在进行这样的项目(如问题中所述),请链接到github :)


1
@Willem 他们实现了点对点连接、数据通道和流堆栈 - 这涵盖了所有内容,也许他们不会实现getUserMedia - 在服务器上确实没有太多意义。 - shacharz
1
@Willem 不,它将服务器视为另一个对等端,通过WebRTC与其他对等端(浏览器或节点WebRTC服务器)建立连接。 - shacharz
我原本认为服务器只需要在两个浏览器之间建立点对点连接(因为由于安全问题,一个节点无法在没有帮助的情况下连接到另一个节点)。但是,我能否使用服务器作为所有其他节点都使用node-webrtc连接的单个实体?我正在尝试使用UDP和服务器-客户端模型来完成游戏。 - Willem
2
需要一个服务器来建立两个浏览器之间的P2P连接是正确的。但这总是在WebRTC中,而这个项目不是关于WebRTC的。是的,你可以使用node-webrtc在SCTP over UDP上进行服务器-客户端通信 - 这就是它所涉及的用例之一。 - shacharz
这是一个很好的观察,node-webrtc 的范围并不包括在 WebRTC 之上提供任何抽象层。但确实有许多开发人员寻求不同的抽象层。 - shacharz
显示剩余5条评论

4
我们已经实现了完全相同的东西:使用WebRTC的服务器/客户端方式。此外,我们还实现了数据端口多路复用,因此服务器只需要公开一个数据端口来处理所有rtcdata通道。
如何实现的简要概述:
- 我们在nodejs中使用wrtc库进行了实现。但是同样的原则也可以应用于其他实现。 - 服务器公开一个控制端口,以便客户端与服务器交换SDP以建立它们的数据通道。 - 为了支持数据端口多路复用,在服务器上,我们修改了两个对等方的SDK,以便:
- 客户端将始终连接到相同的服务器ip:data_port。 - 我们在服务器内部实现了一个UDP数据代理,以便它可以成为服务器WebRTC引擎和客户端之间的桥梁。
代码位于:https://github.com/noia-network/webrtc-direct

现在它是公开的。 - Miao ZhiCheng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接