remote.jsjac.chat.writeReceiveMessage(userJID, userName, content, false);
}
},
// 重新连接服务器
reconnection: function () {
remote.jsjac.register = false;
if (remote.connection.connected()) {
remote.connection.disconnect();
}
remote.jsjac.chat.login();
},
/* ########################### Handler Event ############################# */
handleIQ: function (aIQ) {
var html = “<div class=’msg’>IN (raw): ” + aIQ.xml().htmlEnc() + “</div>”;
remote.console.info(html);
remote.connection.send(aIQ.errorReply(ERR_FEATURE_NOT_IMPLEMENTED));
},
handleMessage: function (aJSJaCPacket) {
var user = aJSJaCPacket.getFromJID().toString();
//var userName = user.split(“@”)[0];
//var userJID = “u” + hex_md5(user);
var content = aJSJaCPacket.getBody();
var html = “”;
html += “<div class=”msg”><b>消息来自 ” + user + “:</b><br/>”;
html += content.htmlEnc() + “</div>”;
remote.console.info(html);
$.WebIM.messageHandler(user, content);
},
handlePresence: function (aJSJaCPacket) {
var user = aJSJaCPacket.getFromJID();
var userName = user.toString().split(“@”)[0];
var html = “<div class=”msg”>”;
if (!aJSJaCPacket.getType() && !aJSJaCPacket.getShow()) {
html += “<b>” + userName + ” 上线了.</b>”;
} else {
html += “<b>” + userName + ” 设置 presence 为: “;
if (aJSJaCPacket.getType()) {
html += aJSJaCPacket.getType() + “.</b>”;
} else {
html += aJSJaCPacket.getShow() + “.</b>”;
}
if (aJSJaCPacket.getStatus()) {
html += ” (” + aJSJaCPacket.getStatus().htmlEnc() + “)”;
}
}
html += “</div>”;
remote.console.info(html);
// 向chat接收信息区域写消息
remote.jsjac.chat.writeMessage(“”, userName, html);
},
handleError: function (event) {
var e = event || window.event;
var html = “An error occured:<br />”
+ (“Code: ” + e.getAttribute(“code”)
+ “nType: ” + e.getAttribute(“type”)
+ “nCondition: ” + e.firstChild.nodeName).htmlEnc();
remote.error(html);
var content = “”;
switch (e.getAttribute(“code”)) {
case “401”:
content = “登陆验证失败!”;
break;
// 当注册发现重复,表明该用户已经注册,那么直接进行登陆操作
case “409”:
//content = “注册失败!nn请换一个用户名!”;
remote.jsjac.chat.reconnection();
break;
case “503”:
content = “无法连接到IM服务器,请检查相关配置!”;
break;










