JavaScript/jQuery、HTML、CSS 构建 Web IM 远程及时聊天通信程序

2020-05-22 16:09:00易采站长站整理

case “500”:
var contents = “服务器内部错误!nn连接断开!<br/><a href=’javascript: self.parent.remote.jsjac.chat.reconnection();’>重新连接</a>”;
remote.jsjac.chat.writeMessage(“”, “系统”, contents);
break;
default:
break;
}
if (content) {
alert(“WeIM: ” + content);
}
if (remote.connection.connected()) {
remote.connection.disconnect();
}
},
// 状态变化触发事件
handleStatusChanged: function (status) {
remote.console.info(“<div>当前用户状态: ” + status + “</div>”);
remote.dbger.log(“当前用户状态: ” + status);
if (status == “disconnecting”) {
var html = “<b style=’color:red;’>你离线了!</b>”;
// 向chat接收信息区域写消息
remote.jsjac.chat.writeMessage(“”, “系统”, html);
}
},
// 建立链接触发事件方法
handleConnected: function () {
remote.console.clear(“debug”); // reset
remote.connection.send(new JSJaCPresence());
},
// 断开链接触发事件方法
handleDisconnected: function () {
},
handleIqVersion: function (iq) {
remote.connection.send(iq.reply([
iq.buildNode(“name”, remote.jsjac.resource),
iq.buildNode(“version”, JSJaC.Version),
iq.buildNode(“os”, navigator.userAgent)
]));
return true;
},
handleIqTime: function (iq) {
var now = new Date();
remote.connection.send(iq.reply([
iq.buildNode(“display”, now.toLocaleString()),
iq.buildNode(“utc”, now.jabberDate()),
iq.buildNode(“tz”, now.toLocaleString().substring(now.toLocaleString().lastIndexOf(” “) + 1))
]));
return true;
}
};

这个文件的代码就是用jsjac库和openfire建立通信的核心代码,代码中已经有注释,这里我就不再赘述。如果有什么不懂的可以给我留言。
4、消息区域、编辑器代码 send.message.editor-1.0.js

/**
* IM chat Send Message iframe editor
* @author: hoojo
* @email: hoojo_@126.com
* @blog: http://blog.csdn.net/IBM_hoojo
* @createDate: 2012-5-24
* @version 1.0
**/
var agent = window.navigator.userAgent.toLowerCase();
var sendMessageEditor = {
// 获取iframe的window对象
getWin: function () {
return /*!/firefox/.test(agent)*/false ? sendMessageEditor.iframe.contentWindow : window.frames[sendMessageEditor.iframe.name];
},
//获取iframe的document对象
getDoc: function () {
return !/firefox/.test(agent) ? sendMessageEditor.getWin().document : (sendMessageEditor.iframe.contentDocument || sendMessageEditor.getWin().document);
},
init: function (userJID) {
//打开document对象,向其写入初始化内容,以兼容FireFox
var doc = sendMessageEditor.getDoc();