【问题处理】海康视频websocket代理问题(websocket在业务系统https协议下调用海康ws协议)

简介

本文记录一次海康视频代理websocket 在https业务系统环境下调用海康服务ws协议的问题。

问题描述

起初前端组件展示视频时,业务系统使用的环境是https,此时海康服务调用时,使用的是ws协议,最后前端控制台报错:

复制代码
Failed to construct 'WebSocket':
 An insecure WebSocket connection may 
 not be initiated from a page loaded over HTTPS.

明显是https协议的安全控制,需要通过nginx进行代理,通过观察发现,海康插件会调用类似下面这样一段ws服务地址:

复制代码
ws://IP:PORT/media?version=1.0&cipherSuites=0&sessionID=

先让让前端将ws修改为wss协议,然后由后台nginx进行代理,这里由于是海康的内部代码行为,因此nginx只能对media关键字捕获从而进行代理,如下是代理节:

复制代码
  upstream  haikangstream {
      server ip:port; # 此处对应原海康ws请求地址
  }

server {
   ....
   location /media {
        proxy_pass http://haikangstream;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
     }
}

如此配置后按理说应该没问题,不过前端调用过程中发现,有时候某些视频能正常播放,但极大概率由视频播放不正常,失败的视频请求时nginx报错:

复制代码
2024/07/31 14:01:35 [error] 445170#0: *298 recv() failed (104: Connection reset by peer) while reading 
response header from upstream, client: 192.168.20.165, server: localhost:18000, 
request: "GET /media?version=1.0&cipherSuites=0&sessionID=&proxy=wss: HTTP/1.1", 
upstream: "http://x.x.x.x:p/media?version=1.0&cipherSuites=0&sessionID=&proxy=wss:",
 host: "192.168.20.x:xx000"

其中X是敏感屏蔽,若影响观感,还请见谅。

仔细观察发现代理后的低值http://x.x.x.x:p/media?version=1.0&cipherSuites=0&sessionID=&proxy=wss:最后的传参proxy不太正常,对比原请求ws://IP:PORT/media?version=1.0&cipherSuites=0&sessionID=尝试让前端在海康插件js中找到此处代码,将proxy拼接参数逻辑去除,即不传递此参数,重启前端,视频播放正常。

总结

处理该问题几乎花了一天的时间,但是感觉都不是技术上的问题,不知道海康api有什么考虑,但还是站在无知者的角度建议遇到这个问题之后应该采取的方案:

  1. 建议海康组件此处应考虑对wss协议的兼容。
  2. 修改前端js代码处对proxy拼接逻辑,同时nginx对media请求进行代理。
相关推荐
DogDaoDao2 小时前
Android 硬件编码器参数完全指南:MediaCodec 深度解析
android·音视频·视频编解码·h264·硬编码·视频直播·mediacodec
音视频牛哥4 小时前
大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C#版)
音视频·低延迟rtsp播放器·windows rtsp播放器·windows rtmp播放器·低延迟rtmp播放器·c# rtsp播放器·c# rtmp播放器
薛定猫AI6 小时前
【深度解析】Gemini Omni 多模态生成与 Agent 化创作工作流:从视频编辑到 UI 生成的技术演进
人工智能·ui·音视频
音视频牛哥14 小时前
大牛直播SDK(SmartMediaKit)Windows平台RTSP/RTMP直播播放SDK集成说明(C++版)
windows·音视频·实时音视频·windows rtsp播放器·windows rtmp播放器·超低延迟rtsp播放器·超低延迟rtmp播放器
Jacob程序员15 小时前
企业级Websocket即时通讯系统
websocket
EasyGBS16 小时前
1分钟讲清楚选EasyNVR还是国标GB28181视频平台EasyGBS:路线不同,别选错
音视频
日光明媚17 小时前
深度解析 SGLang 框架 Wan2.1 视频生成加速技术:从 49 分钟到 1 分钟的极致优化
人工智能·计算机视觉·aigc·音视频·sglang
小猿君17 小时前
谷歌I/O前夜Veo 4遭泄露,AI视频底层逻辑浮出水面
人工智能·音视频
南山有乔木78917 小时前
音频怎么转换MP3格式?M4A、WAV、FLAC转mp3实测有效的格式转换方法
音视频
不昀17 小时前
音频变压器Bourns SM-LP-5001国产替代选型指南
网络·音视频·以太网·网络通信·电子元器件