大黄瓜de冬天 2024-02-22 14:35 采纳率: 89.5%
浏览 7
已结题

问答使用wss取视频文件报错

问题遇到的现象和发生背景

使用ip+端口登录取视屏流正常,因为发送的是ws://这种,使用域名登录后
游览器取视频流报错:WebSocket is closed before the connection is established.

img

操作环境、软件版本等信息

部署环境:linux/centos7
nginx配置(监听的443部分):

img

项目配置(取视频流地址部分):

img

尝试过的解决方法

1.stream-ip配置为ip地址时,报缺少ssl证书,补上了监听的443部分(还有上一级服务器监听的1443转发给上图nginx配置的443)

我想要达到的结果

使用域名登录后视屏流正常

  • 写回答

2条回答 默认 最新

  • GISer Liu 2024-02-22 15:30
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    根据你的描述,问题出现在使用域名登录后,浏览器无法获取视频流,报错为WebSocket在连接建立之前就关闭了。这可能是由于域名访问时使用了wss协议(WebSocket Secure),但服务器端没有正确配置SSL证书所致。

    解决这个问题的思路是确保服务器端正确配置SSL证书以支持wss协议。以下是具体的解决方案:

    1. 确保SSL证书有效性

      • 确认你的SSL证书是否有效,是否正确配置在服务器上。
      • 检查证书链是否完整,确保中间证书和根证书都正确配置。
    2. Nginx配置修改

      • 确保Nginx配置中正确配置了SSL证书和私钥,并且配置了wss协议的监听。
      • 在Nginx配置中检查是否正确地转发WebSocket请求到后端服务器。
    3. 项目配置修改

      • 确保你的项目配置中,取视频流的部分使用的是wss协议而不是ws协议。
      • 如果需要,确保项目中对于wss协议的地址使用了正确的域名。
    4. 检查端口及防火墙

      • 确保服务器的443端口没有被防火墙或其他安全措施阻止访问。
    5. 日志分析

      • 在服务器端和浏览器端查看相关日志,以获取更多信息来定位问题。

    综上所述,你需要检查服务器端Nginx配置和SSL证书的正确性,确保配置了正确的wss协议监听,并且在项目中正确使用了域名。如果以上方法都无法解决问题,可能需要进一步分析日志以确定具体原因。

    如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订

    用户答题指南

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月8日
  • 已采纳回答 2月29日
  • 创建了问题 2月22日