关于nodejs websocket 推送数据导致内存泄露的问题
发布于 2 年前 作者 yh4922 2742 次浏览 来自 问答

项目背景

  • 算法端(python)读取rtsp实时帧画面进行智能分析,分析完成后推送图片(bass64)到服务端
  • 服务端(nodejs)创建一个ws服务端 接收算法推送过来的数据,并推送给前端显示
  • 客户端(web) 接收服务端推送的base64数据进行显示

具体问题

  • node端给前端推送数据时 会出现内存泄露 客户端断开连接 内存也不会降下来
  • 测试过nodejs 只接收python 发送来的数据不会出现内存上涨 只有在向前端发送时才会上涨

尝试过的方案

  • 数据分片 把base64转为二进制 分片发给前端 前端在拼接起来,内存问题没有明显优化 反而前端拼接耗时太长
  • 设置perMessageDeflate
  • 每次发送前验证客户端的bufferedAmountreadyState 状态,确定上一次数据发送完成,在发送下一次
3 回复

想问问有没有什么配置可以优化 或者有没有其他方案可以实现 图片推送到前端显示 感谢🙏🙏🙏🙏

  1. (推送)业务代码可能有问题
  2. websocket 插件有问题

正确的做法不是找到哪里泄露么?

回到顶部