我们做了一个图像识别的程序,要在网页端实时播放识别结果,涉及到python,websocket(node.js), html
后台程序是用python写的,程序获取摄像头中的每一帧图像,算法识别后,将图片压缩成字节流,发送到websocket服务端,然后服务器端将消息发送到前端html,html以快速播放图片的方式实现实时播放。
因为共有7个摄像头,所以python程序是用多进程实现的,每个摄像头用一个进程,一个进程中有两个线程,一个负责获取图片;一个负责识别图片、发送给服务端。
websocket服务端是用nodejs实现的,服务端的代码如下:
var WebSocketServer = require('ws').Server,
wss = new WebSocketServer({ port: 9999 });
wss.on('connection', function (ws) {
console.log('client connected');
ws.on('message', function (message) {
console.log(length(message));
ws.send(message);
});
});
**现在的问题是:python将字节流发送到websocket服务端后(node.js实现),Node.js JavaScript Runtime的内存就一直在涨,直到把内存吃完,当python断开链接后,Node.js JavaScript Runtime 的内存增长就停止了,重启node.js后,内存才恢复正常
**