背景 大华一款摄像头Onvif协议响应的xml数据未携带命名空间导致Onvif协议服务解析失败,为了兼容这款摄像头决定对onvif_client进行修改忽略掉命名空间。由于本地没有出问题的摄像头,
背景大华一款摄像头Onvif协议响应的xml数据未携带命名空间导致Onvif协议服务解析失败,为了兼容这款摄像头决定对onvif_client进行修改忽略掉命名空间。由于本地没有出问题的摄像头,需要启动HTTP服务器模拟Onvif协议,接收Onvif客户端发送过来的http请求并响应。 问题对onvif客户端的某一请求修改了ip和端口成功连接上HTTP服务器之后,请求成功,但是HTTP服务响应的xml数据被截断了,抓包显示HTTP服务器数据为发送完就关闭了连接。 oatpp搭建Onvif模拟服务:https://www.jb51.net/article/239533.htm 解决方案在领导的帮助下找到思路,原因是onvif客户端发送的http请求未携带keep-alive头,导致该http连接不是长连接,HTTP服务端主动关闭。 查看HTTP服务器源码,查找keep-alive
找到关键信息
查看源码 找到关键代码,注释掉close标识即可在未携带keep-alive请求头的情况下保证数据发送完整 |
2022-04-23
2022-10-16
2022-08-26
2020-04-20
2021-01-20