(已移除参考产品连接)程序员
在这个系列的文章里,我将尝试一步一步开发一套功能完备的在线客服系统,并将其开源在 Git 上,欢迎关注。web
目前进度:开发框架初步搭建,技术验证DEMO,Git 地址随后附上,敬请关注。数据库
鉴于水平限制,不免有所疏漏,欢迎批评指正。编程
文章将分为几个部分浏览器
1、需求分析及技术方案初步选型服务器
2、技术方案选型,验证网络
3、底层框架设计,开发架构
4、服务器设计开发框架
5、客户端设计开发异步
6、Web端设计开发
在这个系列的文章中,您将了解并学习到如下技术知识:
MSMQ、YUI、WebSocket、Reporting Services、WinForms
若是这些技术对您有用,还请您 推荐 一下本文章,谢谢!
首先咱们大概看看什么是在线客服系统:
只需将系统生成的一段JavaScript代码嵌入网站页面,便可在网站上显示表明客服的浮动小图标,邀请框,以及小聊天窗口。
而客服侧能够在客服程序中,查看网站的实时在线访客、浏览轨迹等,访客点击网页上的浮动小图标,就能直接和网站客服人员进行在线即时交流,目的是提高客户满意度和网站的销售额。
由此分析,在线客服系统大至分为三大块:1)服务端,2)客服端,3)web网页端。可是仅仅分为这三大块是不够的,下面咱们还将对每一块进行进一步的分析。
在功能上,至少应当包含如下功能:
1)对于web来分析:浮动图标的设置和显示,邀请框的设置和显示 、 以及核心的聊天窗口
聊天界面效果:
2)对于客服端功能分析:在线访客的查看和主动邀请、 接受访客发起的咨询 、 客服之间的会话转接 、 访客访问轨迹,我的信息的获取及展现 、历史记录的保存及查询 、 实时监控,以及和报表相关的统计分析。
参考现有软件效果:http://www.zkebao.com 招客宝
能够看出客服界面大至分为几个部分:
1)左侧的访客区,显示各类不一样状态的访客,如访问中,会话中,邀请中等。
2)中间的会话聊天区。
3)右侧的扩展功能。
http://www.zkebao.com 招客宝
因而可知,对于访客的管理,最为重要的就是对于访客状态的管理。这块内容后面我将一步一步为你们展开。
好了,到此,在线客服系统的主要功能你们应该已经有了直观的印象,那么,从何着手才能开发一套功能齐备的在线客服系统呢?
首先是大至的体系结构与架构设计:
技术方案的选型:
1)服务器操做系统:
Windows Server 2012
Windows Server 2012 是微软下一代 Windows 服务器的最新版本,它采用超越虚拟化技术,可经过一台服务器提供多台服务器的功能, 实现至关灵活的工做方式,为每一个应用程序创造更大的发挥空间 。它将向企业和托管提供商提供可伸缩、动态、支持多租户以及经过云计算获得优化的基础结构,并能帮助 IT 专业人员更快、更高效地响应业务需求。
2)消息服务:
MSMQ
在线客服系统最重要的是什么,固然是网站访客与客服人员消息的互通,我不推荐重复造轮子,而是更愿意选择成熟稳定的产品来为咱们服务。
Message Queue(微软消息队列)是在多个不一样的应用之间实现相互通讯的一种异步传输模式,相互通讯的应用能够分布于同一台机器上,也能够分布于相连的网络空间中的任一位置。它的实现原理是:消息的发送者把本身想要发送的信息放入一个容器中(咱们称之为Message),而后把它保存至一个系统公用空间的消息队列(Message Queue)中;本地或者是异地的消息接收程序再从该队列中取出发给它的消息进行处理。
在消息传递机制中,有两个比较重要的概念。一个是消息,一个是队列。消息是由通讯的双方所须要传递的信息,它能够是各式各样的媒体,如文本、声音、图象等等。消息最终的理解方式,为消息传递的双方事先商定,这样作的好处是,一是至关于对数据进行了简单的加密,二则采用本身定义的格式能够节省通讯的传递量。消息能够含有发送和接收者的标识,这样只有指定的用户才能看到只传递给他的信息和返回是否操做成功的回执。消息也能够含有时间戳,以便于接收方对某些与时间相关的应用进行处理。消息还能够含有到期时间,它代表若是在指定时间内消息还未到达则做废,这主要应用与时间性关联较为紧密的应用。
3)Web 开发框架:
YUI,WebSocket
对于在线客服系统,Web页面的稳定性和速度很是重要,在此咱们使用 YUI 和 WebSocket 来构建可与服务端实时交互的 Web 系统。
YUI:YUI库是一系列使用Javascript和CSS建立的的工具和控件集,用来建立富客户端Web应用。使用到了DOM scripting,DHTML和AJAX。
WebSocket:是HTML5开始提供的一种在单个 TCP 链接上进行全双工通信的协议。WebSocket通讯协议于2011年被IETF定为标准RFC 6455,WebSocketAPI被W3C定为标准。在WebSocket API中,浏览器和服务器只须要作一个握手的动做,而后,浏览器和服务器之间就造成了一条快速通道。二者之间就直接能够数据互相传送。
4)报表服务器
Microsoft SQL Server Reporting Services
Reporting Services提供了一套完整的服务、工具和应用程序编程接口 (API),您即便不是程序员也可使用 Reporting Services。可使用 Reporting Services 中包含的应用程序和工具来制做、发布和管理报表。此外,还提供了支持报表生存周期的各个阶段的工具或应用程序。程序员可使用 API 将报表功能扩展或集成到自定义解决方案中。
5)客服端开发框架:
Microsoft .NET Framework 4.5 / WinForm
WinForm 提供了丰富的控件,可用于设计窗体,以建立丰富的基于Windows的应用程序。新的数据提供程序管理:数据提供程序管理提供易于链接OLEDB和ODBC数据源的数据控件,包括Microsoft SQL Server、Microsoft Access、Jet、DB2以及Oracle等。方便的数据显示和操做:应用程序开发中最多见的情形之一是在窗体上显示数据。Windows窗体对数据库处理提供全面支持。能够访问数据库中的数据,并在窗体上显示和操做数据。
我将在下一篇中,对以上技术方案进行更进一步的详细论述与验证,敬请关注。
若是这些技术对您有用,还请您 推荐 一下本文章,谢谢!您的支持就是个人动力。