peerjs/webrtciceConnectionState 失败

2023-12-07

我已经尝试解决这个问题有一段时间了。我正在尝试使用peerjs 建立一个简单的连接。我可以成功连接到具有 id 的对等点USER_ID。但是,他们无法连接到我。当他们尝试连接时,我收到以下日志。

iceConnectionState更改为failed最终收不到数据。

  • 该应用程序正在使用peerjs云服务器
  • 我正在使用最新版本的 Chrome。他们尝试使用最新版本的 Chrome 和 Firefox
  • 他们已关闭所有防火墙
  • 甚至尝试过Peerjs聊天示例并且它因相同的错误而失败。

知道为什么这会发生/发生在这里吗?

任何帮助表示赞赏!



peer.min.js:1 PeerJS:  Socket open
peer.min.js:1 PeerJS:  Creating RTCPeerConnection.
peer.min.js:1 PeerJS:  Listening for ICE candidates.
peer.min.js:1 PeerJS:  Listening for `negotiationneeded`
peer.min.js:1 PeerJS:  Listening for data channel
peer.min.js:1 PeerJS:  Listening for remote stream
peer.min.js:1 PeerJS:  Setting remote description RTCSessionDescription
peer.min.js:1 PeerJS:  Added ICE candidate for: USER_ID
peer.min.js:1 PeerJS:  Set remoteDescription: OFFER for: USER_ID
peer.min.js:1 PeerJS:  Created answer.
peer.min.js:1 PeerJS:  Set localDescription: answer for: USER_ID
peer.min.js:1 PeerJS:  Received ICE candidates for: USER_ID
peer.min.js:1 PeerJS:  Added ICE candidate for: USER_ID
peer.min.js:1 PeerJS:  Received ICE candidates for: USER_ID
peer.min.js:1 PeerJS:  Added ICE candidate for: USER_ID
peer.min.js:1 PeerJS:  Received ICE candidates for: USER_ID
peer.min.js:1 PeerJS:  iceConnectionState is disconnected, closing connections to USER_ID
  

我有完全相同的问题。添加 STUN TURN 服务器应该可以解决该问题。

客户端代码

peer = new Peer(this.api.currentUserValue().id+'-'+this.api.currentUserValue().first_name,{
                                                    host: 'localhost',
                                                    port: 8080,
                                                    path: '/api',
                                                    debug: 3,
                                                    config: { 'iceServers': [
                                                      { 'url': 'stun:stun.l.google.com:19302' },
                                                      { 'url': 'turn:numb.viagenie.ca',credential: 'xxxx', username:'[email protected]'  } ] } // this is must for keeping the connection open
                                                      });

服务器端代码

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var expressPeerServer = require('peer').ExpressPeerServer;
var path = require('path');



app.set('port', (process.env.OPENSHIFT_NODEJS_PORT || "8080"));
app.set('host', (process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1"));

app.use(express.static(path.join(__dirname, '/client')));
app.use('/api', expressPeerServer(server, {debug:true}));




server.listen(app.get('port'),app.get('host'),function(){
  console.log('Server running at %s:%s',app.get('host'),app.get('port'));
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

peerjs/webrtciceConnectionState 失败 的相关文章

  • 获取画布上下文的最后一个点的坐标

    我想创建一个arrowTo功能与CanvasRenderingContext2D prototype 为此 我需要获取最后一个点的坐标 例如 var ctx someCanvas getContext 2d ctx moveTo 10 40
  • 在生产中使用 babel-node 可以吗

    我一直在使用 babel node 和 browserify 以及 babelify 转换来开发一个网站 以支持 ES6 语法 我只是想知道 我可以在生产中运行它吗 babel node server 而不是 node server 要在
  • 如何将 div (或任何元素)覆盖在表格行 (tr) 上?

    我想在恰好有多个列的表行 tr 标记 上覆盖一个 div 或任何可以使用的元素 我尝试了几种方法 似乎都不起作用 我在下面发布了我当前的代码 我确实得到了一个覆盖 但不是直接覆盖在该行上 我尝试将覆盖顶部设置为 div Bottom css
  • 将 Laravel 集合/数组转换为 Javascript 数组

    我想将 Laravel 中的数组分配给 JavaScript 数组 我已经从我的AppServiceProvider和 json decoded 它像 View composer function view users Users all
  • 使用 Ajax 在输入时提交 Textarea,然后渲染部分内容而不刷新整个页面

    目前我正在尝试通过 JS 和 Ajax 在没有提交按钮的情况下发表评论 并且它有效 问题是当帖子提交时 页面重新加载到 post id comment页面 我希望它呈现部分内容 而不是刷新整个页面或将我带到不同的页面 我对 JS 不熟悉 任
  • 执行页面的 javascript 后保存页面的 html 输出

    我正在尝试抓取一个网站 它首先加载 html js 使用js修改表单输入字段 然后使用POST 如何获得 POSTed 页面的最终 html 输出 我尝试使用 phantomjs 执行此操作 但它似乎只有渲染图像文件的选项 谷歌搜索表明这应
  • 向 JS 计算器添加键盘支持时出现的问题

    我想为我的计算器添加键盘支持 当我用键盘按下操作 即 或 时 js将其视为数字 而不是操作 例如 当我通过点击计算 10 11 时 我将得到 21 作为结果 当我通过键盘输入时 我会得到 10 为什么会发生这种情况 是否可以改变它 div
  • Visual Studio IDE 中功能后的空间

    如何设置 Visual Studio 中的设计以在我的 javascript 函数后面放置一个空格 目前 当我按下返回键时 我得到了这个 var myfunc function 当我想要这个的时候 var myfunc function 知
  • 变量前面加双下划线

    我的节点代码中有以下代码片段 var fs require fs fs readdir dirname function err files console log files 为什么变量 dirname 有双下划线 我知道一个下划线是私有
  • Javascript:通过将路径作为字符串传递给对象来获取对象的深层值[重复]

    这个问题在这里已经有答案了 可能的重复 使用字符串键访问嵌套的 JavaScript 对象 https stackoverflow com questions 6491463 accessing nested javascript obje
  • 添加选项以选择框而不用 Internet Explorer 关闭该框?

    我正在尝试构建一个包含多个下拉选择框的网页 这些下拉选择框在首次打开时异步加载其选项 这在 Firefox 下工作得很好 但在 Internet Explorer 下则不然 下面是我想要实现的目标的一个小例子 基本上 有一个选择框 ID 为
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 表单序列化javascript(无框架)

    想知道 javascript 中是否有一个没有 jquery 或任何框架的函数可以让我序列化表单并访问序列化版本 2023 年更新 Use FormData https developer mozilla org en US docs We
  • javascript/jquery 禁用点击提交按钮,防止重复提交

    所以我的提交按钮如下所示 a href img src images user create product png border 0 a 当我双击它时 显然会双重提交 问题是 我将信息保存在数据库中 因此那里会有重复的信息 我不想那样 这
  • D3.js - 具有多个环的圆环图

    以下示例显示了 D3 js 中的圆环图 是否可以向图表添加多个圆环 var dataset apples 53245 28479 19697 24037 40245 var width 460 height 300 radius Math
  • d3力定向布局-链接距离优先

    在 d3 中使用力导向布局 如何使链接距离成为优先事项 同时仍然保持良好的图形布局 如果我指定动态链接距离 但保留默认费用 则我的图形距离会因费用函数而发生一些变形 并且不再是准确的距离 但是 如果我删除电荷 图表将如下所示 任何建议表示赞
  • 在多个数组中搜索字符串,然后设置 var - jQuery

    我正在寻找基于字符串存在于哪个数组中设置一个变量 例如 var primary red blue yellow var secondary orange purple green 然后检查 purple 并返回它在 secondary 数组
  • window.open 使用 css 样式

    我想设计我的 window open 目前 我的网页上有一些项目由于解析了某个类而打开 然后在新窗口中打开指定的文本 我想更改字体大小 字体和填充等 这是我的 JavaScript 代码
  • 使用 div 或表格来包含链接列更好吗?

    我的页面底部有 3 列链接 每列都放入一个 div 中 所有三个 div 都包装在页面中央的一个大 div 中 这是更适合桌子的东西还是桌子不适合这项工作 您还可以使用 ul http www w3schools com tags tag
  • R闪亮:使用闪亮的JS从数据表中获取信息

    我想读出所有列名称以及它们在数据表中显示的顺序 由于不同的原因 我无法使用 stateSave 等选项 我对 JS 没有什么把握 但我确信用它可以完成 所以我需要你帮助我 我尝试过类似的代码片段 datatable data callbac

随机推荐

  • 在奇数/偶数整数列表中查找奇偶校验异常值

    我正在尝试查找并返回奇数整数列表中的单个偶数整数或偶数整数列表中的唯一奇数整数 但是 我的代码可以工作 如果奇数整数列表的长度是偶数 它会返回列表中的第一个数字而不是偶数整数 任何帮助表示赞赏 代码如下 even 2 4 6 8 10 12
  • 多个CPU可以同时写入同一个RAM位置吗?

    机器字大小 或更小 的写入是否已序列化 只需一个本机操作码即可将寄存器内容复制到 RAM 将数据写入 RAM 是原子的 如果两个 CPU 尝试同时写入同一位置 内存控制器将决定写入的某种顺序 当一个 CPU 写入内存时 另一个 CPU 将根
  • 在 WP8 WebBrowser 控件中显示 m.bing.com

    我在 Windows Phone 8 上的 WebBrowser 控件中加载 bing com 时遇到问题 这样做似乎会启动 WP8 搜索应用程序 与按手机上的搜索按钮相同 问题是 一旦您单击该搜索应用程序中的结果 它不会带您返回原始应用程
  • WPF ComboBox SelectedItem 未更新

    我在与某公司合作时遇到问题WPF 组合框 我的情况是我有一个显示一些值的组合框 我正在添加ContentControls 到组合框 Items财产 我已经绑定了Content这些 ContentControl 到某个数据源 以便我可以动态更
  • 基于 WooCommerce 中特定产品地理位置的自定义重定向

    如果德国客户尝试访问产品页面 我需要将他们重定向到自定义页面 并且我已经开始将一些内容放在一起 但我不知道如何完成 这是我得到的 add action do not know which hook to use geo origin red
  • 停止在 MAMP 中缓存 PHP 5.5.3

    使用 PHP 5 5 3 在新 Macbook 上安装了 MAMP 重新加载和刷新什么也不做 依然没有 谷歌几分钟试图找出问题所在 然后回来刷新 有用 有没有搞错 我进入 php ini 并禁用所有新的 OPcache 并将默认缓存时间设置
  • 如何将访问过的页面 URL 添加到会话数组中?

    每次用户访问页面时 页面 url 都会存储到数组会话中 我只想在数组中有 10 个元素 这样 10 个元素将保存 10 个最近访问的页面 url 这是我的代码 我测试了
  • 转置(3,0,1,2)是什么意思?

    这是什么意思 data transpose 3 0 1 2 另外 如果data shape 10 10 10 为什么我得到ValueError axes don t match array 我先从Python3的角度来讨论一下 我在Pyth
  • 将本地 mosquitto 桥接到云代理

    我正在尝试将本地 mosquitto 在树莓派上 桥接到某个云代理 以便我可以发送数据并使用该数据控制某些设备 我尝试使用 Cloudmqtt 和 dioty 但没有成功 在 cloudmqtt 的情况下 我被告知 mosquitto co
  • Android - 如何将文件附加到短信?

    我需要通过短信发送联系方式 所以 我使用 vcf 文件 不过 我需要将它附加到 android SDK 中的短信 android中有这样的功能 我在智能手机上尝试过 我几天来一直在寻找做到这一点的方法 到目前为止我发现的一切都是这个构建 v
  • 将 B 隐藏在 A
    B

    我有一个 h2 foo br bar h2 我想隐藏 bar 但我找不到合适的选择器 有可能吗 我认为你应该将 B 包裹起来 span B span 并隐藏该跨度
  • dataSnapshot 具有对象,但 getValue() 将返回 null

    所以我现在正在为这个问题苦苦挣扎大约三个小时 我有这个用户类别 public class User private String user id private String userName private long phoneNumbe
  • 如何在Python中查找任何包的“导入名称”?

    我想知道是否有任何可靠且一致的方法来获取Python包 导入名称 命名空间 例如 Package Django 干草堆 导入名称 草垛 or Package 蟒蛇 导入名称 Python 到目前为止我知道 PyPi 不存储我用 PyPiXm
  • C#.net 中的弹出窗口

    如何在单击按钮时弹出子窗体 我希望子 winform 位于屏幕中央 并且整个背景屏幕应该模糊 并且在表单的右上角应该可以看到一个小的关闭按钮 我在网上搜索过但一无所获 使用Winforms 制作一个新的窗口窗体 默认情况下它有一个关闭按钮
  • 键“P​​RIMARY”的重复条目。忽略字符串的空格

    mysql gt CREATE TABLE primary2 boom text id int PRIMARY KEY boom 5 Query OK 0 rows affected 0 04 sec mysql gt INSERT INT
  • SQL 存储过程参数已损坏?

    我有一个存储过程 目前只是假设将您的字符串输入验证为有效日期 我尝试在程序之外运行它 它工作完美 但是一旦我将其放入程序中 参数就会更改为零 我的程序如下 CREATE PROCEDURE spDateRange DateMin varch
  • C - 按升序插入链表

    我正在尝试创建一个程序 将数字按升序插入链接列表中 这是我的插入功能 它适用于插入一些数字 但不适用于其他数字 我认为这与最后一部分有关 但我无法弄清楚 node insert node head int value check if he
  • vb.net查询显示数据表的特定行[基础]

    如何在表中显示查询返回的特定行 查询代码为 SELECT name STD Fees paid FROM register WHERE paid Fees lt 0 我收到错误 An unhandled exception of type
  • 将 boost::bind 函数存储在 std::map 中

    我正在创建一堆函数 它们都有效地执行相同的操作 long Foo check long retValue unsigned toCheck const std set
  • peerjs/webrtciceConnectionState 失败

    我已经尝试解决这个问题有一段时间了 我正在尝试使用peerjs 建立一个简单的连接 我可以成功连接到具有 id 的对等点USER ID 但是 他们无法连接到我 当他们尝试连接时 我收到以下日志 iceConnectionState更改为fa