我在linux虚拟机上运行的node.js上有简单的应用程序.它侦听tcp消息并使用socket.io库将它们发送到客户端.经过一段时间的低CPU使用后,突然开始加载CPU越来越高,直到应用程序挂起.脚本很简单,我无法理解它有什么问题.
var net = require('net');
var io = require('socket.io').listen(socketPort);
net.createServer(function (socket) {
socket.setEncoding("utf8");
socket.on('data', function (dataStr) {
console.log("TCP dataStr " + dataStr);
var data = JSON.parse(dataStr);
io.sockets.in(data.room).emit('publish', data);
});
}).listen(tcpPort);
io.sockets.on('connection', function (socket) {
socket.on('subscribe', function (room) {
console.log('subscribe room ' + room);
if (Array.isArray(room)) {
var i;
for (i = 0; i < room.length; i++) {
console.log('subscribe join room ' + room[i]);
socket.join(room[i]);
}
} else if (typeof room === 'string') {
console.log('subscribe join room ' + room);
socket.join(room); …Run Code Online (Sandbox Code Playgroud)