关于nodejs websocket 推送数据导致内存泄露的问题
项目背景
- 算法端(python)读取rtsp实时帧画面进行智能分析,分析完成后推送图片(bass64)到服务端
- 服务端(nodejs)创建一个ws服务端 接收算法推送过来的数据,并推送给前端显示
- 客户端(web) 接收服务端推送的base64数据进行显示
具体问题
- node端给前端推送数据时 会出现内存泄露 客户端断开连接 内存也不会降下来
- 测试过nodejs 只接收python 发送来的数据不会出现内存上涨 只有在向前端发送时才会上涨
尝试过的方案
- 数据分片 把base64转为二进制 分片发给前端 前端在拼接起来,内存问题没有明显优化 反而前端拼接耗时太长
- 设置
perMessageDeflate
- 每次发送前验证客户端的
bufferedAmount
和readyState
状态,确定上一次数据发送完成,在发送下一次
3 回复
想问问有没有什么配置可以优化 或者有没有其他方案可以实现 图片推送到前端显示 感谢🙏🙏🙏🙏
- (推送)业务代码可能有问题
- websocket 插件有问题
正确的做法不是找到哪里泄露么?