webrtc-client在浏览器使用c++推流程序崩溃nlohmann::detail::type_error错误修复分享

我们介绍过很多TSINGSEE青犀视频开发团队开发WebRTC的过程,我们使用到了c开发。C不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

在开发WebRTC流媒体服务器时,WebRTC推流在使用浏览器拉流一段时间后,c++ 程序会导致崩溃,浏览器拉流端的视频也会停止播放,c++ 推流端在vs2017会进入到错误断点报以下内容:
“0xxxxxxx处(位于xxxxx.exe中)有未经处理的异常,异常:nlohmann::detail::type_error,位于内存位置0xxxxxxxxx处”。

看报错信息,是在使用webrtc json的库里出现的错误信息,这样就能确定一点,应该是某部分代码在调用webrtc json的库出现不一致的情况导致的错误。

我们在代码中找到WebRTCClient.cpp文件,打印一下服务端反馈的数据:

 服务端反馈的错误数据格式如下:

{“data”:{“errCode”:-1,”errMsg”:”Router not found”,”id”:9,”method”:”createWebRtcTransport”}}。

 知道问题所在,那么解决就变简单多了。我们只需要在添加一个简单的判断代码,判断字段是否存在即可。

 
原文地址:https://www.cnblogs.com/TSINGSEE/p/14378481.html