A. R. 在线支持:基于 XML 的客户支持聊天解决方案






4.58/5 (20投票s)
使用 ASP.NET(2.0)、C# 和 XML 作为数据库构建的客户支持聊天解决方案。

引言
我检查过很多聊天解决方案,它们都依赖数据库。这些应用程序一旦数据库宕机就会失效,而在实际系统中,这种情况并不少见。因此,我决定构建一个与数据库无关的聊天解决方案。所以,XML 是最好的替代方案。
这是我的第一篇文章,A. R. 在线支持是我使用 XML 开发的第一个解决方案。
背景
A. R. 在线支持是一款在线聊天软件,使用 ASP.NET(2.0) 和 XML 开发。它易于使用,方便客户和客服人员进行一对一的实时沟通。它是一款灵活的在线聊天软件,可以一键提供客户支持。
主要功能包括
- 使用 HTML、JavaScript、XML、C# 和 Ajax 技术构建
- 无需数据库:由于基于 XML,因此不需要数据库。
- 无闪烁:基于先进的 Ajax 技术,聊天屏幕每秒刷新一次(可以自定义),屏幕上的更改不需要刷新屏幕。
- 无需 ActiveX 或插件等 - 因为它不是基于 Java 的,用户无需安装插件或在机器上安装 Java 组件。JavaScript、XML 和 C# ASP.NET 的组合使其成为可能。
- 不存储消息或用户内存,所有内容都存储在 XML 文件中。此功能允许在同一服务器上运行多个聊天室甚至聊天应用程序。
- 易于安装 - 只需要将服务器上的一个 *.zip 文件解压缩,创建一个虚拟目录,聊天就准备好了。
- 支持所有主流浏览器 - Internet Explorer、Netscape、Mozilla Firefox、Opera
代码演练
-
我将从一段用于反复调用服务器以获取最新信息的代码开始
function InitializeTimer() { // Set the length of the timer, // in seconds. Your choice secs = 2; StopTheClock(); StartTheTimer(); } function StopTheClock() { if(timerRunning) clearTimeout(timerID); timerRunning = false } function StartTheTimer() { if (secs==0) { StopTheClock(); ajax_MakeAnAJAXGetCall(); //Generate a Postback to the server InitializeTimer(); // Start the timer again } else { secs = secs - 1; timerRunning = true; timerID = self.setTimeout("StartTheTimer()", delay); } } //AJAX Function function makeRequest() { var xmlHttpRequest = null; /* * For Firefox, Mozilla, Safari */ if (window.XMLHttpRequest) { xmlHttpRequest = new XMLHttpRequest(); } /* * For Microsoft Internet Explorer */ else if (typeof ActiveXObject != "undefined") { xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlHttpRequest; }//END of Function makeRequest function ajax_MakeAnAJAXGetCall() { ajaxObj = makeRequest(); //alert('HELLO'); if (ajaxObj != null) { var dt = new Date(); var URL = serverURL; URL += '?id=' + document.getElementById('lblID').innerHTML + '&dt1=' + dt.getHours()+ '&dt2=' + dt.getMinutes(); //alert(URL); StopTheClock(); ajaxObj.open("GET", URL, true); ajaxObj.onreadystatechange = ajax_CallBack; ajaxObj.send(null); } else { } return false; } function OpenPop(strId) { window.open('execChatWindow.aspx?id=' + strId,'','width=520,height=490'); } function ContactServer() { ajax_MakeAnAJAXGetCall(); //THis makes Ajax call to run }
-
服务器端代码,用于获取用户/客服人员的消息
string strResult = string.Empty; try { string chatId = Request.QueryString["cid"].ToString(); string strXML = chatId + ".XML"; strResult = clsChatMessages.getUnReadMessages(Request.PhysicalApplicationPath, strXML,Request.QueryString["id"].ToString(), true); } finally { }
关注点
- 聊天是完全可定制的,即在 web.config 中有很多有趣的设置。
- 最初它不提供任何报告,但可以使用 XML 文件生成报告。
历史
- 2008-11-09
- 文章的初始发布
- 2008-11-18
- 聊天部门选择
- [Bug 修复] 在聊天分配中
- 2008-12-16
- 客服人员之间的聊天转移
- 密码加密 [RSA]