ChainPadSrv.js : factor parseMessage a wee bit

pull/1/head
ansuz 9 years ago
parent 3928c89d35
commit 0f73ea793d

@ -24,31 +24,18 @@ var PING = 4;
var PONG = 5; var PONG = 5;
var parseMessage = function (msg) { var parseMessage = function (msg) {
var passLen = msg.substring(0,msg.indexOf(':')); var orig=msg,
msg = msg.substring(passLen.length+1); res ={};
var pass = msg.substring(0,Number(passLen)); // two or more? use a for
msg = msg.substring(pass.length); ['pass','user','channelId','content'].forEach(function(attr){
var len=msg.substring(0,msg.indexOf(':'));
var unameLen = msg.substring(0,msg.indexOf(':')); msg=msg.substring(len.length+1);
msg = msg.substring(unameLen.length+1); var prop=msg.substring(0,Number(len));
var userName = msg.substring(0,Number(unameLen)); msg = msg.substring(prop.length);
msg = msg.substring(userName.length); res[attr]=prop;
});
var channelIdLen = msg.substring(0,msg.indexOf(':')); res.content=JSON.parse(res.content);
msg = msg.substring(channelIdLen.length+1); return res;
var channelId = msg.substring(0,Number(channelIdLen));
msg = msg.substring(channelId.length);
var contentStrLen = msg.substring(0,msg.indexOf(':'));
msg = msg.substring(contentStrLen.length+1);
var contentStr = msg.substring(0,Number(contentStrLen));
return {
user: userName,
pass: pass,
channelId: channelId,
content: JSON.parse(contentStr)
};
}; };
// get the password off the message before sending it to other clients. // get the password off the message before sending it to other clients.

Loading…
Cancel
Save