问题标签 [coturn]

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 投票
0 回答
2174 浏览

nginx - 使用 SSL 和其他服务器在 NGINX 后面代理 COTURN

我正在尝试在一个困难的网络中使用 webrtc,该网络会阻止除 80 和 443 出站和所有入站之外的所有端口。所以我需要一个运行的 coturn 服务器来监听带有 SSL 证书的 80 和 443。我想将它与 REST API 服务器、一些 websocket 服务器和托管静态文件的 NGINX 一起运行。我从这个工作的 nginx 配置开始。另一个问题中有一个关于如何在根上转发的示例。但我无法让同样的事情与路径一起工作。例如,我希望转向服务器在<url>/coturn. 我希望 ssl 由 nginx 处理,但如果该作业被传递给 coturn 就可以了。

任何人都可以向我展示一个处理 coturn 的 nginx 配置与这样的多个其他端点吗?

编辑:这是一个非常小的配置,只是试图让代理工作与类似:

域引用由我运行的docker-compose给出。

但是通过涓涓细流运行它,我得到一个不可访问的错误。如果我改为运行暴露在互联网上的coturn ,那么它似乎可以按预期工作。

0 投票
1 回答
234 浏览

webrtc - 连接问题 webRTC 应用程序。只能在本地工作,不能在移动设备上工作

非常感谢在这个问题上的一些帮助。不知道如何继续。

试图制作一个 webRTC 应用程序。信令服务器是 Node.js 上的 WebSocket。由于某种原因无法与手机建立连接。使用 - 或 - 尝试使用 coturn。我不确定问题是客户端还是服务器端@coturn 中继服务器。

在我的情况下,呼叫者是调节器路由器后面的电脑,被呼叫者是手机,turn 和 websocket 是公共的。

来自调用者和被调用者的最后发送的候选人是 null(candidate:null) 也是由两者添加的addIceCandidate(candidate)

在被调用者获得候选事件“candidate:null”后,被调用者获得“handleICEConnectionStateChangeEvent:失败”最后我在控制台中收到此错误消息:

ICE 失败,您的 TURN 服务器似乎已损坏,有关详细信息,请参阅 about:webrtc

这是我通过公共 google stun 服务器以及我的 coturn stun/turn 收到的最后一个也是唯一的错误消息。

我应该提供哪些有意义的信息?我应该在哪里搜索错误?真的不知道。

非常感谢提前干杯

0 投票
1 回答
2735 浏览

node.js - 如何配置 WebRTC 以连接到我的 TURN 服务器?

我正在做一个非常基本的 WebRTC 项目,但我似乎无法让我的网站连接到我的 TURN 服务器。我在本地机器(MacOS 10.15.4)上使用 coturn 设置了 TURN 服务器,我很确定它的工作和配置正确。(当我从https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/测试它时,我可以从本地内部和外部看到一个 rtp 主机、rtp srflx 和一个 rtp 中继网络,所以我假设这意味着它按预期工作。)

该网站是此 codelab 的第 5 步示例的略微修改版本,对 node.js index.js 文件进行了轻微修改,以通过 https 托管网站,以允许从本地网络外部访问网络摄像头。

只要两个客户端都在同一个网络上,一切都可以正常工作(因此不需要 TURN 服务器),但是一旦其中一个客户端尝试从另一个网络连接到另一个客户端,PeerConnection 就不会正确建立并且两个客户端都只能看到自己的 localStream。

我认为网站上的 JavaScript 缺少某些内容,因为当我从webrtc.github.io示例测试 TURN 服务器时,我在终端中看到了 TURN 服务器的以下输出:

(显然 xxx 是实际输出中的实际数字)

但是,当不同网络上的两个客户端尝试加载页面并启动对等连接时,我的终端中根本没有 coturn 的输出,所以我猜测我网站的 JavaScript 中的某些内容丢失了,并且它没有使用我的 TURN 服务器。这是目前网站上与TURN服务器相关的所有代码:

在控制台中,我看到了消息Requesting TURN server...Turn ready at: turn:xxx.xxx.xxx.xxx:3478

但由于我在终端中没有从我的 TURN 服务器获得任何输出,我猜该网站实际上根本没有向 TURN 服务器发出请求。我可能在我的客户端 JavaScript 中遗漏了一些明显的东西,但我不知道是什么,所以我希望有人有一些想法并可以提供帮助!

0 投票
1 回答
384 浏览

webrtc - 在同一个网络中部署 TURN 和媒体服务器有意义吗?

假设我们S部署了一个媒体服务器。我们有一个C在对称 NAT 后面的客户端。由于对称 NAT,直接 WebRTC 媒体流是不可能的。所以我们想部署一个 TURN 服务器T,它将在S和之间中继所有媒体C

现在,为了简单起见,似乎开发人员有时会T在附近部署S。但它有助于在C和之间传输媒体S吗?“近”的意思是“在同一个网络中”,所以如果有的话S,它们都在同一个 NAT 后面。T由于它们位于相同的 NAT 后面,因此似乎并没有改善连接性:在 和 之间传输 WebRTC 流量的机会与在S和之间C相同。TC

这个推理是正确的还是我错过了什么?在我目前的理解中,TURN 服务器就像一个代理,具有更好的连接性C。所以它们应该被放置在另一个网络中以产生任何效果。

0 投票
1 回答
550 浏览

webrtc - 无法访问 coturn 网络管理员

我在 Centos 7 上使用 Coturn。我创建了一个管理员用户并存储在 mySQL 中,我可以通过命令列出管理员用户:

turnadmin -L -M "host=localhost dbname=turndb user=coturn 密码=password port=3306 connect_timeout=10 read_timeout=30"

但我无法登录到 Web Admin。相反,我看到了这条消息:

TURN 服务器 https 管理员连接

要使用 HTTPS 管理员连接,您必须使用管理员用户帐户设置数据库表 admin_user。

为什么?

0 投票
1 回答
937 浏览

webrtc - Web RTC 项目的 Co-Turn 服务器无法正常工作

我有一个使用 co-turn 并托管在 GCP 上的转弯服务器。

并且已经成功安装服务器没有任何错误并启用了端口。

但是当我在我的 web rtc 项目中使用它时,它似乎不起作用,因为我的应用程序只能在同一个路由器或网络上运行。

它不适用于其他网络。

我尝试检查https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/并得到以下结果,表明它很好。

所以,我有点迷失在哪里检查了。

请帮助我在其他任何地方可以检查的内容。谢谢。

在此处输入图像描述

============================================

添加外部 IP 后更新。

在此处输入图像描述

最近更新

当我在 chrome://webrtc-internals/ 上调试时,icecandidateerror 事件中有一条错误消息,状态为未经授权。

当我重新检查参考此链接创建的转向服务器时,我仍然有 user=guest:somepassword 行,因此使用该密码尝试我的服务器以确认是否是用户问题。

不过还是没有运气。请帮助我指导我需要更多研究的地方。

由于我对这项技术和基础设施不熟悉,所以我在这里有点迷路。

0 投票
2 回答
8899 浏览

webrtc - STUN 服务器地址不兼容 | 错误代码=701:

我已经安装了 TURN 服务器,服务器代码中的所有内容都运行良好。日志文件中没有错误。只有一个警告说明

但 TURN 服务器在服务器上运行。

这是我检查时显示的内容lsof -i :3478

当我在Trickle ICE中检查 STUN 时,它会引发错误

这出了什么问题。

谢谢

0 投票
0 回答
810 浏览

safari - iOS 中 Safari 上的 TURNS / TURN 协议

我目前正在手机上测试不同的 TURN 解决方案,并注意到加密的 TURN 在 Safari 上不起作用。

当我定义一个单一的 TURN 服务器时:

turn:my-turn.com:443

它可以正常工作。如果我定义一个单一的 TURN 服务器:

turns:my-turn.com:443

我无法在 Safari (iOS 13.5.1) 上使用 LTE/3G 与我的 iPhone 建立连接,因为需要 TURN 服务器。我希望我的客户始终使用加密协议,但现在也必须向服务器添加未加密版本。有谁知道这种行为的原因或我如何让 Safari 使用加密的 TURNS 协议?我在 TURN 服务器上使用 CoTurn。

提前致谢。

0 投票
1 回答
932 浏览

webrtc - 转服务器中继端口在严格的防火墙中被阻止

我已经建立了两个转服务器(Coturn)和一个信令服务器。它适用于普通网络。

当涉及到严格的防火墙时

转服务器中继端口范围被阻止并在防火墙中视为威胁。

谁能建议如何解决这个阻塞?

在哪里允许端口范围(客户端或转向服务器端)?

对 webrtc 的新手,任何建议表示赞赏。

0 投票
1 回答
985 浏览

video-streaming - COTURN 使用过多的 CPU !这是正常的吗?

谢谢你们,

我有一个使用WebRTC API开发的视频会议项目,我使用开源 COTURN 构建了自己的 TURN 服务器。根据我的阅读,turn 和 stun 服务器不是 cpu 或内存密集型服务器,但我的 turn 服务器使用8 核ubuntu 服务器的90% 以上cpu,只有100 个客户端。到目前为止,我已经成功地提供了视频会议服务,但现在我将服务于 75000 个客户,恐怕我无法管理这些数字。

这是我的 TURN 服务器配置:

在此处输入图像描述

我错过了什么吗?

在任何情况下coturn(或任何转弯服务器)使用那么多CPU?