【问题标题】:Peer not receiving any data in WebRTC with webrtc-swarm对等体未使用 webrtc-swarm 在 WebRTC 中接收任何数据
【发布时间】:2026-02-17 20:40:02
【问题描述】:

我正在构建一个点对点聊天应用程序,在一个新的点对点连接上,我将一个 username_set 变量设置为 0,因此它表示点对点没有用户名。但是,peer.on(data, function (data) {}) 似乎没有得到任何数据,因为当我输入内容时它没有显示任何内容。我想知道这里有什么问题,因为我是新手。

我正在使用webrtc-swarm,它使用 simple-peer 作为对等对象:

var username_set = 0

swarm.on('peer', function(peer, id) {
    console.log('[a new peer connected]')
    console.log('Set username if you havent and continue chatting')  
    if(username_set === 0){
        console.log('Please set username:')
        peer.on('data', function (data) {
        console.log("data:" + data.toString())
        })
    }
    if(username_set === 1){
        console.log('test successful')
    }        
})

【问题讨论】:

    标签: javascript node.js webrtc p2p


    【解决方案1】:

    您使用的webrtc-swarm 软件包已过时,似乎没有人在维护它。

    最后一次更新是在 2 年前,在 WebRTC 1.0 之前。

    因此,可以确定这个webrtc-swarm 包依赖于已弃用的 WebRTC 功能。随着 2018 年 WebRTC 1.0 的发布,一些功能被弃用,之前规范中的一些功能已从浏览器中删除。

    WebRTC 是一项不断发展的技术,即使是当前的规范也没有 100% 实现,甚至主要浏览器也没有。没有简单的方法,也没有比原生实现更好的库或让您腾出时间的库。如果您现在开始使用开源或免费的 WebRTC 库,您几乎肯定会在弃用问题上浪费时间。

    我的建议是:

    1. 依靠the WebRTC MDN documentation
    2. 看看Guides and Tutorials from MDN
    3. 使用Socket.IO 发送信号
    4. Setup a TURN server 在 Ubuntu 机器上。

    【讨论】: