大佬教程收集整理的这篇文章主要介绍了node.js – socket.io随着时间的推移RAM使用率上升,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var maxMsgs = 50; var express = require('express'),sio = require('socket.io'),redis = require('redis'),redisStore = require('socket.io/lib/stores/redis'); var app = express.createServer(),pub = redis.createClient(),sub = redis.createClient(),client = redis.createClient(); app.configure(function () { app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(express.static(__dirname + '/public')); app.use(app.router); }); app.get('/',function (req,res) { res.sendfile(__dirname + '/index.html'); }); app.listen(8002,function () { var addr = app.address(); console.log('app listening on http://' + addr.address + ':' + addr.port); }); var io = sio.listen(app,{log: falsE}),nicknames = {},history = [],user_count = 0,topic = {topic: '',setBy: 'Server'},ytvid = {vid: '',setBy: 'Server'}; io.enable('browser client minification'); io.enable('browser client etag'); io.enable('browser client gzip'); io.set('store',new redisStore({redisPub : pub,redisSub : sub,redisClient : client})); //io.set('resource','socket'); io.sockets.on('connection',function(socket) { socket.on('join',function(cu) { if(cu.username && cu.username != 'Guest') { socket.nickname = cu.username; socket.emit('connected',nicknames,history,topic,ytvid); nicknames[cu.username] = cu; socket.broadcast.emit('nicknames',nicknames); user_count++; //socket.broadcast.emit('Announcement',{msg: socket.nickname + ' connected'}); } }); socket.on('message',function(msg,cb) { if(msg.msg && msg.msg != '') { msg.time = Date.Now() / 1000; history.push(msg); while(history.length > maxMsgs) history.shift(); cb(true,msg.timE); socket.broadcast.emit('message',msg); } }); socket.on('stopic',function(t) { if(t.topic && t.setBy && t.topic != '') { topic = t; io.sockets.emit('topic',t); } else { topic = {topic: 'No topic set',setBy: 'Admin'}; io.sockets.emit('topic',topic); } }); socket.on('sytvid',function(v) { if(v.vid && v.setBy && v.vid != '') { ytvid = v; io.sockets.emit('ytvid',v); } else { ytvid = {vid: false,setBy: 'Admin'}; io.sockets.emit('ytvid',ytvid); } }); socket.on('get debug',function() { socket.emit('debug',{users: nicknames,history: history,user_count: user_count,topic: topic}); }); socket.on('send command',function(C) { if(c.type == 'empty') history = []; io.sockets.emit('command',c); }); socket.on('disconnect',function() { if(!socket.nickName) return; if(!nicknames[socket.nickname]) return; //nicknames[socket.nickname].status = 'offline'; delete nicknames[socket.nickname]; //socket.broadcast.emit('Announcement',{msg: socket.nickname + ' disconnected'}); socket.broadcast.emit('nicknames',nicknames); user_count--; }); }); function inArray(needle,haystack){for(var key in haystack){if(needle===haystack[key]){return true;}}return false;} function zeroPad(digits,n){n=n.toString();while(n.length<digits){n='0'+n;}return n;} function time(timE){if(time==null)time=new Date();else if((time instanceof DatE)===falsE)time=new Date(timE);return time;}
以上是大佬教程为你收集整理的node.js – socket.io随着时间的推移RAM使用率上升全部内容,希望文章能够帮你解决node.js – socket.io随着时间的推移RAM使用率上升所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。