websocket - Turnserver 显示 WebSocket 打开错误:尝试加入房间后出现 WebSocket 错误
问题描述
我的应用程序具有 1:1 视频通话功能,为此我设置了自己的转向服务器。直到昨天,turnserver 一直运行良好。当我尝试从应用程序调用时,turnserver 拒绝。我从浏览器尝试了turnserver url,它显示了这样的内容,
我立即登录了collidermain,它显示
root@<machine_name>:~# <timestamp> Starting collider: tls = true, port = 8443, room-server=https://<mydomain>.com
<timestamp> http: TLS handshake error from 182.160.105.186:43243: remote error: tls: unknown certificate
每次都会出现这种情况,我的应用程序尝试与 turnserver 连接。
心想,ssl 证书跟它有关,更换 ssl 证书,尝试重新安装 collidermain,重新启动 google-cloud-sdk、turnserver、collidermain。仍然没有运气。
在 stakoverflow 上有两个类似的问题。
WebSocket 打开错误:WebSocket 错误,这不是 chrome 错误,因为在我写这篇文章的时候,我让另外两个 turnserver 运行得非常好,服务器运行状况也很好
Websocket 打开错误,websocket 注册错误这也不起作用。我重新安装了对撞机。没运气
我的问题是,这个错误的根本原因是什么以及如何解决它?
系统规格:
操作系统:Ubuntu 20.04
使用 Google-cloud-sdk 运行的 AppRTC 代码,版本:330.0.0
Turnserver 版本:4.4.3
信令服务器:collidermain
- 使用 let's encrypt certbot 颁发的证书
解决方案
解决了!这就是发生的事情。
我将 certbot 颁发的证书复制到另一个目录/cert/
并在turnserver.conf
文件中,我将证书路径指向/cert/
目录。所以它工作了一段时间。Certbot 证书有效期为 3 个月,有效期届满自动更新。因此,certbot 更新了证书并将其放入/etc/letsencrypt/live/:domain_name/
. turnserver.conf
仍然指向过时的证书驻留在/cert/
目录中。这就是为什么当我尝试加入房间时,使用过时的证书和节目的服务器TLS handshake error
所以,我只是将证书路径从更改/cert/
为/etc/letsencrypt/live/:domain_name/
in turnserver.conf
,它重新上线了!耶!!