我正在开发一个带有摄像头实时流媒体页面的有角度的Web应用程序。 通过rtsp代理使用JSMPEG lib将流显示在canvas标记中。
我的应用程序类似于我在此问题中描述的内容:Not able to Show live camera RTSP streaming with Angular
负责尖叫的Typescript代码是使用JSMPEG完成的,该JSMPEG启动了websocket请求:
new JSMpeg.Player('ws://my_ip:9999', {
canvas: this.streamingcanvas.nativeElement, autoplay: true, audio: false, loop: true
})
我使用以下命令执行了我的应用程序:
ng serve --host 0.0.0.0 --disable-host-check --proxy-config proxy.config.json
我的应用程序和实时流媒体正常运行。
现在,我想通过https执行我的应用程序。因此,我使用openssl生成了证书,然后使用以下命令执行了我的应用程序:
ng serve --host 0.0.0.0 --disable-host-check --proxy-config proxy.config.json --ssl true --ssl-cert /home/ubuntu/ssl/angular-selfsigned.crt --ssl-key /home/ubuntu/ssl/angular-selfsigned.key
结果是我可以使用https成功访问我的网页,但是实时流式传输不起作用。
我检查了firefox控制台,发现以下错误:
注意:灰色区域是my_ip地址
然后我检查了“网络”标签,找不到对流代理ws:// my_ip:9999
的任何请求此问题的主要原因是什么?我该如何解决?
答案 0 :(得分:0)
尝试使用“ wss:// my_ip:9999”而不是“ ws:// my_ip:9999”
答案 1 :(得分:0)
最近的浏览器版本需要SSL。
您需要在服务器上配置SSL证书,并使用WSS而不是WS。