问题标签 [peerjs]
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.
javascript - PeerJS 自动重新连接
我最近使用 PeerJS 开发了一个 Web 应用程序,并正在尝试添加重新连接功能。
基本上,我的应用程序由创建客户端然后连接到的服务器的人工作。服务器人员可以控制主机正在做什么,但它是基本的双向通信。
如果客户端断开连接,他们只需重新连接即可正常工作。但是,如果服务器用户刷新页面,或者他们的计算机崩溃,那么他们需要能够重新建立对客户端的控制。
首先是重新获得原始连接 ID 和对等 api ID,这很好也很容易,因为它们存储在数据库中并分配了一个唯一的 ID,服务器用户可以使用它来查询它们。然后为了使客户端重新连接,我在关闭时执行此操作:
这似乎可行,因为在服务器端,客户端看起来已经重新连接 - 连接功能已触发等。但是无法在两者之间发送消息,并且客户端控制台说:
上面显示“打开”事件已被收听的地方......
我希望这很清楚 - 任何帮助表示赞赏:)
webrtc - WebRTC“ICE 失败”,错误
所以,我正在尝试webrtc video chat
使用peer.js
. 到目前为止一切顺利,一切似乎都正常。当我在我的私人服务器上运行我的应用程序时,问题就开始了。
每次我尝试接听或拨打电话时,视频开始播放几秒钟,但出现黑屏,然后我收到ICE Failed
错误并断开连接。
如果两个用户共享相同的 IP 地址,则不会发生这种情况。如果用户共享相同的 ip,则视频聊天可以正常工作,完全没有问题。
这里可能是什么问题?
更新
我添加了 stun 并打开对等服务器,但我再次遇到同样的错误
javascript - 尝试广播时出现 PeerJS 错误
我试图通过列出所有对等点并向每个对等点发送消息来在 PeerJS 中创建广播功能。我的客户代码如下:
我的信令服务器代码如下:
为了测试它,我启动服务器并打开两个浏览器选项卡,选项卡 1 和选项卡 2。然后,我单击选项卡 1 中的广播 Hello Message 按钮。我希望在选项卡 2 中登录“你好”,而不是收到此错误:
奇怪的是,没有重新加载任何内容,如果我单击选项卡 2 中的广播按钮,它会将其记录在选项卡 1中。我是 WebRTC 的新手,因此非常感谢任何帮助。
node.js - PeerJS - 连接事件的参数不是 id
在PeerJS Server中,连接事件的参数不是 id。我猜它是一个插座。
以下是我的代码。
当我运行它并输入http://localhost:9000/时,控制台会打印出巨大的文本,看起来不像 id。
我怎样才能获得香草ID?
javascript - iceConnectionState 已断开连接(通过 Internet 使用时)
以前有人问过这个问题,但我还没有找到答案。我基本上遇到了与此处和此处描述的相同的问题。
我正在尝试使用 PeerJS 建立 webRTC 连接。它在局域网中完美运行,但我无法让它在互联网上运行。我使用 coturn 作为 TURN 服务器,但到目前为止这还没有解决问题。Chromium 控制台打印出以下内容:
我正在使用的对等对象如下所示:
coturn 在使用 turnserver -L [server ip] 启动 turnserver 时,会打印出以下内容:
最后,因为我猜这可能是一个安全问题,我的 iptables 配置目前看起来像这样:
任何人都知道如何让这个东西工作?任何帮助将不胜感激!
编辑:原来我的 TURN 配置的 JSON 很乱。我的新对等对象现在看起来像这样:
这给了我更多关于 TURN 服务器的反馈(所以我想我正朝着正确的方向前进)——但问题仍然存在。
EDIT2: 嗯,它变得相当奇怪。这似乎是某种跨浏览器兼容性问题。使用 mido 建议的 TURN 服务器测试工具,我在 Firefox 中得到的结果与在 Chromium 中不同。我打算使用 Chromium,因为它的信息亭模式对我的应用程序来说非常方便。但回到回合服务器。在 Firefox 中,使用用户帐户时,一切似乎都运行良好: github 测试页面的输出:
但是,允许匿名访问 TURN 服务器并尝试在没有用户名和密码的情况下登录,绝对没有任何反应。
Chromium 中的不同故事:提供用户名和密码后,会发生以下情况:
...当 TURN 服务器上的终端一遍又一遍地打印出 401 错误消息时。在我看来,使用铬时凭据永远不会到达服务器。401 错误消息表明用户名为空。
我真的可以用 Chromium 来做那件事。有没有人知道如何让它工作?
authentication - 如何验证公共 P2P 网络中节点的合法性(peer.js)
我有一个公共 P2P 网络和节点(基于 peer.js),具有以下条件:
- 任何人(包括恶意节点)都可以加入 P2P 网络
- 每个合法节点都有一个共同的安全密钥,通过安全方式共享
在这种情况下,节点必须在合法节点之间建立全网状连接。
在这里,我需要实现一个安全协商协议,该协议将在节点之间建立连接之前使用。我需要确保每个节点都应该通过协商将恶意节点拒之门外,也许,使用仅在合法节点之间共享的公共安全密钥。
我认为这种情况会有一个众所周知的解决方案,但我还找不到。这种情况的典型解决方案是什么?
android - 如何从本机应用程序使用 Kurento 媒体服务器?
我打算使用 Kurento Media Server 在服务器端录制 WebRtc 媒体流。客户是 Android 和 iOS,我想为他们开发原生应用程序。在这种情况下,我可以使用 Peerjs 或其他 WebRtc 框架来开发客户端应用程序并连接到 KMS 吗?如果是,如何从本机应用程序访问 KMS?
node.js - WebRTC 不适用于 VPN 和非 VPN 客户端
最近我写了一些屏幕共享应用程序,它使用 Peer.js 库(使用 WebRTC)来共享媒体内容。通常,应用程序启动后,它会从 PeerJSServer 获取 uniq ID 到当前客户端。如果两个客户端都进入 VPN 网络,或者两个客户端都不在 VPN 网络中 - 一切正常。但是,如果一个客户端进入 VPN,而另一个客户端没有 - 连接不会建立。谁知道 - 我该如何解决这个问题?我很乐意从你那里得到任何帮助。