问题标签 [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.

0 投票
1 回答
2703 浏览

javascript - PeerJS 自动重新连接

我最近使用 PeerJS 开发了一个 Web 应用程序,并正在尝试添加重新连接功能。

基本上,我的应用程序由创建客户端然后连接到的服务器工作。服务器人员可以控制主机正在做什么,但它是基本的双向通信。

如果客户端断开连接,他们只需重新连接即可正常工作。但是,如果服务器用户刷新页面,或者他们的计算机崩溃,那么他们需要能够重新建立对客户端的控制。

首先是重新获得原始连接 ID 和对等 api ID,这很好也很容易,因为它们存储在数据库中并分配了一个唯一的 ID,服务器用户可以使用它来查询它们。然后为了使客户端重新连接,我在关闭时执行此操作:

这似乎可行,因为在服务器端,客户端看起来已经重新连接 - 连接功能已触发等。但是无法在两者之间发送消息,并且客户端控制台说:

上面显示“打开”事件已被收听的地方......

我希望这很清楚 - 任何帮助表示赞赏:)

0 投票
1 回答
1078 浏览

webrtc - WebRTC“ICE 失败”,错误

所以,我正在尝试webrtc video chat使用peer.js. 到目前为止一切顺利,一切似乎都正常。当我在我的私人服务器上运行我的应用程序时,问题就开始了。

每次我尝试接听或拨打电话时,视频开始播放几秒钟,但出现黑屏,然后我收到ICE Failed错误并断开连接。

如果两个用户共享相同的 IP 地址,则不会发生这种情况。如果用户共享相同的 ip,则视频聊天可以正常工作,完全没有问题。

这里可能是什么问题?

更新

我添加了 stun 并打开对等服务器,但我再次遇到同样的错误

0 投票
0 回答
978 浏览

javascript - 尝试广播时出现 PeerJS 错误

我试图通过列出所有对等点并向每个对等点发送消息来在 PeerJS 中创建广播功能。我的客户代码如下:

我的信令服务器代码如下:

为了测试它,我启动服务器并打开两个浏览器选项卡,选项卡 1 和选项卡 2。然后,我单击选项卡 1 中的广播 Hello Message 按钮。我希望在选项卡 2 中登录“你好”,而不是收到此错误:

奇怪的是,没有重新加载任何内容,如果我单击选项卡 2 中的广播按钮,它会将其记录在选项卡 1中。我是 WebRTC 的新手,因此非常感谢任何帮助。

0 投票
1 回答
1102 浏览

node.js - PeerJS - 连接事件的参数不是 id

PeerJS Server中,连接事件的参数不是 id。我猜它是一个插座。

以下是我的代码。

当我运行它并输入http://localhost:9000/时,控制台会打印出巨大的文本,看起来不像 id。

我怎样才能获得香草ID?

0 投票
2 回答
5362 浏览

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 来做那件事。有没有人知道如何让它工作?

0 投票
1 回答
421 浏览

android - 直接从冷启动弹出状态

我使用 ionic 框架构建了一个 Cordova应用程序。它是使用Peer JS构建的,每当我的对等方接到来电时,我需要该应用程序从冷启动快速打开一个状态,有点像电话应用程序在我们接到电话时打开来电活动。

目前我正在使用离子推送通知来打开单击通知的状态,但这需要很长时间并且从启动屏幕开始加载。

有没有办法将包含接收呼叫代码的状态快速弹出到前台

0 投票
1 回答
2552 浏览

webrtc - Peer.JS 自己的 https 服务器错误

获取 id 未定义的错误。如果我使用0.peerjs.com它就可以了。这是客户端代码:

这是我自己的peer-server代码:

这就是我得到的: 在此处输入图像描述

我究竟做错了什么?

如果我使用这段代码:

显然,我得到了一个 id,但过了一会儿,这是浏览器控制台的结果:在此处输入图像描述 在此先感谢 :)

0 投票
1 回答
329 浏览

authentication - 如何验证公共 P2P 网络中节点的合法性(peer.js)

有一个公共 P2P 网络和节点(基于 peer.js),具有以下条件:

  • 任何人(包括恶意节点)都可以加入 P2P 网络
  • 每个合法节点都有一个共同的安全密钥,通过安全方式共享

在这种情况下,节点必须在合法节点之间建立全网状连接。

在这里,我需要实现一个安全协商协议,该协议将在节点之间建立连接之前使用。我需要确保每个节点都应该通过协商将恶意节点拒之门外,也许,使用仅在合法节点之间共享的公共安全密钥。

我认为这种情况会有一个众所周知的解决方案,但我还找不到。这种情况的典型解决方案是什么?

0 投票
1 回答
1506 浏览

android - 如何从本机应用程序使用 Kurento 媒体服务器?

我打算使用 Kurento Media Server 在服务器端录制 WebRtc 媒体流。客户是 Android 和 iOS,我想为他们开发原生应用程序。在这种情况下,我可以使用 Peerjs 或其他 WebRtc 框架来开发客户端应用程序并连接到 KMS 吗?如果是,如何从本机应用程序访问 KMS?

0 投票
0 回答
290 浏览

node.js - WebRTC 不适用于 VPN 和非 VPN 客户端

最近我写了一些屏幕共享应用程序,它使用 Peer.js 库(使用 WebRTC)来共享媒体内容。通常,应用程序启动后,它会从 PeerJSServer 获取 uniq ID 到当前客户端。如果两个客户端都进入 VPN 网络,或者两个客户端都不在 VPN 网络中 - 一切正常。但是,如果一个客户端进入 VPN,而另一个客户端没有 - 连接不会建立。谁知道 - 我该如何解决这个问题?我很乐意从你那里得到任何帮助。