CNode

关于nodejs websocket 推送数据导致内存泄露的问题

问答
Yyh4922发布于4 年前最后回复4 年前3 回复4386 浏览0 收藏

项目背景

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

具体问题

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

尝试过的方案

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

回复 (3)

Y
yh4922#1·4 年前

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

W
waitingsong#2·4 年前
  1. (推送)业务代码可能有问题
  2. websocket 插件有问题
H
hyj1991#3·4 年前

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

参与回复
登录后即可参与回复。登录