⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.js.svn-base

📁 一个基于浏览器的即使通讯实例,采用xhtml+css+javascript架构
💻 SVN-BASE
字号:
		initMenu("loginPage");
		var VERSION = " 1.0 C_MSN MSN_01 1.106";
		var user=new Object();
		user.friends=[];
		
		user.logout=function(){
			sendCmd(user.gwurl,"RLO","");
		}
		user.login=function(){
		    user.name=document.getElementById("nameEditor").value;
			document.getElementById("waitingImg").style.display = 'block';		    
			sendCmd("http://apollo.msn.com.cn:9950/","RQGW",user.name+VERSION);
		}
		
		function changedisplay(page1,page2) {
			document.getElementById(page2).style.display="none";
			document.getElementById(page1).style.display="block";
			initMenu(page1);
		}
		function addFriend(){
		    var _email=document.getElementById("addname").value+"@"+document.getElementById("addemail").value;
		    sendCmd(user.gwurl,"RAF",_email,sendCmd.trID);
		}
		
		function setMyStatu(){
		    var _status=getvalue('status');
		    sendCmd(user.gwurl,"RST",_status,sendCmd.trID);
		}
		
		function deleteFriend(){
			
		}
		
		function getvalue(id){
		    var group = document.getElementsByName(id);
		    for(var i = group.length-1; i>=0; i--)
		    if(group[i].checked){
		        return group[i].value;
		    }
		}
		
		function personalSet(){
		    var _newNick=document.getElementById("newNick").value;
		    sendCmd(user.gwurl,"RCNN",_newNick,sendCmd.trID);
		    user.nickName=_newNick;
		    document.getElementById('nickName').firstChild.nodeValue=_newNick;
		}
		
		function initMenu(page){
		window.clearMenu();
		switch(page){
			case "loginPage":
					window.addMenuItem("帮助","changedisplay('help','loginPage')");
					window.addMenuItem("关于","changedisplay('about','loginPage')");
					window.addMenuItem("退出","window.close()");
					window.addMenuItem("登录",'user.login()');
					
					break;
			case "mainUI":
					window.addMenuItem("添加好友 ","changedisplay('addFriend','mainUI')");
					window.addMenuItem("设置状态 ","changedisplay('myStatus','mainUI')");
					window.addMenuItem("设置昵称 ","changedisplay('personalSet','mainUI')");					
					window.addMenuItem("删除好友 ","changedisplay('deleteFriend','mainUI')");
					window.addMenuItem("退出 ","window.close()");
					window.addMenuItem("注销 ","user.logout()");		
					break;
			case "help":
					window.addMenuItem("返回 ","changedisplay('loginPage','help')");
					break;
				case "about":
					window.addMenuItem("返回 ","changedisplay('loginPage','about')");
					break;
				case "myStatus":
					window.addMenuItem("确定 ","setMyStatu()");
					window.addMenuItem("返回 ","changedisplay('mainUI','myStatus')");
					break;
				case "deleteFriend":
					window.addMenuItem("确定 ","deleteFriend()");
					window.addMenuItem("返回 ","changedisplay('mainUI','deleteFriend')");
					break;
				case "addFriend":
					window.addMenuItem("确定 ","addFriend()");
					window.addMenuItem("返回 ","changedisplay('mainUI','addFriend')");
					break;
				case "personalSet":
					window.addMenuItem("确定 ","personalSet()");
					window.addMenuItem("返回 ","changedisplay('mainUI','personalSet')");
					break;
			}
		}
		
		sendCmd.trID=0;		
		function sendCmd(url,head,data,trID){  
		    defineClass("scriptable.XMLHttpRequest");
		        var request = new XMLHttpRequest();
		  request.onreadystatechange = function(){
		        if (request.readyState == 4)
		            if (request.status == 200){
		                handleAnswers(request.responseText);
		            }
		            else window.alert("命令发送出错:"+request.statusText);
		    }
		        request.open("POST",url,false);
		        if (user.sessionId) request.setRequestHeader("SESSIONID", user.sessionId);
		    trID=sendCmd.trID++;
		    request.send(head+" "+trID+(data?" "+data:"")+"\r\n");
		}
		function sendAnswer(url,head,data,trID){
		        sendCmd(url,head,data,trID)
		}
		
		function handleAnswers(responseText){
		    var array=responseText.split("\r\n");
		    var i=array.length-2;
		    for(i;i>=0;i--){
	        handleAnswer(array[i].split(" "))
	        }
		}
		function handleAnswer(answer){
		    if (!isOK(answer)) return;
		    switch(answer[0]){
		    case "AQGW":
			    if (answer[2]==0||answer[2]==1000)
			    {  
			        user.gwurl="http://"+answer[3]+":"+answer[4];
			        sendCmd(user.gwurl,"RLI",user.name+" HwEUHEYSDA== "+ "1 "+"NLN"+VERSION+" 240*320");
			        
			    }
			    break;
			case "ALI":
			    user.nickName = answer[5];
	    		user.sessionId = answer[3];	    
				changedisplay("mainUI","loginPage");
				document.getElementById("waitingImg").style.display = 'none';
				loadUser();
			    break;
			case "RSM":
			    break;
			case "ASM":
			    break;
			case "RPAD":
			    if(!user.sessionId)	user.sessionId=answer[answer.length-1];
				sendAnswer(user.gwurl,"APAD","0",answer[1]); //answer[1]为u25910 到u30340 trID
				break;
			case "RLO":
				sendAnswer(user.gwurl,"ALO","0",answer[1]);
			case "ALO":
			    user.sessionId = null;
    			changedisplay('loginPage','mainUI');
				break;
			case "AP":
			    break;
			case "RFS":
				user.friends.put(new Friend(answer[2],answer[3],answer[4],answer[5]));
			    break;
			case "AST":
			    break;
			default:
			    window.alert("收到错误的命令响应:"+answer);
			}
		}
				
		function onGroupClick(id){
		    var _style = document.getElementById(id).style;
		    var _bar_style = document.getElementById(id+"Bar").style;
		    
		    if(_style.display == "block"){
		        _style.display = "none";
		        _bar_style.backgroundImage = "img/folder_off.png";
		    }else{
		        _style.display = "block";
		        _bar_style.backgroundImage = "img/folder_on.png";
		    }
		}
		statusCode=[];
	statusCode[0]=["",true];
	statusCode[1000]=["成功但当前版本非最新版本,可升级",true];

	statusCode[1001]=["命令字错误",false];
	statusCode[1002]=["LoginEmail不正确",false];
	statusCode[1003]=["MCCP_Version不支持",false];
	statusCode[1004]=["不存在的Partner",false];
	statusCode[1100]=["其他一般错误",false];

	statusCode[2001]=["命令错误",false];
	statusCode[2002]=["TRID错误",false];
	statusCode[2003]=["参数错误",false];
	statusCode[2004]=["消息格式错误",false];
	statusCode[2005]=["离线用户",false];

	statusCode[2011]=["Email格式错误",false];
	statusCode[2012]=["帐号密码错误",false];
	statusCode[2013]=["网络错误",false];
	statusCode[2021]=["获取好友详细信息失败",false];
	statusCode[2031]=["改变自己状态失败",false];
	statusCode[2041]=["改变自己昵称失败",false];
	statusCode[2051]=["发送聊天信息失败",false];
	statusCode[2061]=["添加好友失败",false];
	statusCode[2062]=["添加已经存在的好友",false];
	statusCode[2063]=["添加自己为好友",false];
	statusCode[2064]=["添加一个不存在的email",false];
	statusCode[2071]=["删除好友失败",false];
	statusCode[2072]=["删除不存在的好友",false];
	statusCode[2081]=["操作失败",false];
	statusCode[2999]=["ALI错误,协议文档未注明",false];

		
		function keepAlive(){
		    if (!user.sessionId) return;
		    sendCmd(user.gwurl,"RP");
		}
		function isOK(answer){
		    if (3-answer.length > 0) return true;
		    switch(answer[0]){
		    case "RPAD":
		    case "RFS":
		    case "RLO":
		        return true;
		    case "ASM":
		    case "RSM":
		        return true;
			default:
			    var code= statusCode[answer[2]];
			    if (code[1]) return true;
			    window. alert("服务器返回的错误的信息:"+answer[0]+" " +answer[1]+" " +code[0]);
			    return code[1];
			}
		} 
		window.setInterval("keepAlive()",10000);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -