首页 > 解决方案 > 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 注册错误这也不起作用。我重新安装了对撞机。没运气

我的问题是,这个错误的根本原因是什么以及如何解决它?

系统规格:

标签: websocketssl-certificatewebrtccolliderapprtc

解决方案


解决了!这就是发生的事情。

我将 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,它重新上线了!耶!!


推荐阅读