开发webrtc通过Js调用Go接口发送数据报错500(Internal Sever Error)排查分析

Posted TSINGSEE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发webrtc通过Js调用Go接口发送数据报错500(Internal Sever Error)排查分析相关的知识,希望对你有一定的参考价值。

在开发webrtc时,由于是新技术,我们在编译或者调用过程中会出现平常不太常见的问题,比如使用js语言调用go接口发送base64,Go程序出现设置webrtc远端会话描述提示,但是控制台会出现报错。

68.png

Js端出现接口500(Internal Sever Error)错误:

69.png

js端代码是通过RTCPeerConnection方法来监听onicecandidate里的函数回调的值,如果回调的值未null的话,说明就是监听完成,这里要判断是否为null,再获取本地的会话描述转换base64传给服务端。

70.png

服务端接收到远端的会话描述,直接解析客户端发来的base64数据,导致服务端设置远端会话描述错误。
以下是错误地方:

71.png

在服务端把客户端数据打印出来看看,发现是一个object。

72.png

所以在设置的时候,object webrtc.SessionDescription只设置了SDP数据,而客户端传来的是整个SessionDescription对象,这才导致了该错误所在。

问题原因分析出来了,该问题实际有两种解决办法,大家可以自行参考和判断,分别如下:

1、通过修改js代码,只传sdp转base64数据给服务端。

73.png

2、通过修改服务端把解析出来的数据直接给SetRemoteDescription这个对象。

74.png

以上是关于开发webrtc通过Js调用Go接口发送数据报错500(Internal Sever Error)排查分析的主要内容,如果未能解决你的问题,请参考以下文章

WebRTC原理解析

WebRTC Native M96 SDK接口封装--muteLocalVideoStream开关本地视频发送

WebRTC Native M96 SDK接口封装--muteLocalVideoStream开关本地视频发送

WebRTC Native M96 SDK接口封装--muteLocalVideoStream开关本地视频发送

短信接口调用的时候报错

pion/webrtc - 如何在 GO Pion API 中设置音频接收器和源?