
已解决问题
谷歌sanmaoshuini用户在2016.08.31提交了关于“华胥引websocket服务端一次连接耗多少内存”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-11-05T03:44:23。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,不知道说什么,送你一朵小红花吧 !
详细问题描述及疑问:期待您的答案,不知道说什么,送你一朵小红花吧 !
1.当用用户连接时
2.用户本身还需要
3.当所有用户都处于断开连接时,服务器处于挂起状态,不在去获取内存状态的变化,节省了资源浪
这样,不管有多少个用户
优化后的服务器代码如下:
//sendmemoryinfopersecond
varWebSoc
varspawn=require('child_process').spaw
varmem={};
var
functionupdateMemInfo(){
varfree=spawn('free',['-k']);
free
varstrdata=""+data;
console
//正则匹配,获取**
varre=/Mem
varresu
if(result.length>0){
mem["total"]=parseInt(result[1]);
mem["use
mem["free"]=pa
//mem["shar
mem["buffers"]
}
});
}
updateMemInfo();
wss.on('connection',function(ws){
varclientMemSend;
varsendMemUpdates=function(ws){
if(ws.readyState==1){
ws.send(JSON.stringify(mem));
}
}
clientMemSend=setInterval(function(){
if(typeofclientMemUpdater=='undefined'){
clientMemUpdater=setInterval(updateMemInfo,1000);
}
sendMemUpdates(ws);
},1000);
sendMemUpdates(ws);
if(typeofclientMemUpdater=='undefined'){
clientMemUpdater=setInterval(updateMemInfo,1000);
}
ws.on("close",function(){
if(typeofclientMemSend!='undefined'){
clearInterval(clientMemSend);
}
if(typeofclientMemUpdater!='