[分享]WEBIM(即时通讯,客服系统)详解
最近看见很多这样的帖子,说是WEBIM,客服系统等等,本人也关心的上去看了看,第1眼感觉就是这个世界在疯狂的刷新.
ajax webim:
这个大家并不陌生,首先利用xmlhttpresquest开发的WEBIM本质跟留言版一样.其区别仅仅在于刷新频率比较快而已.但是你能保证双向通信吗?答案是肯定的.当初我也曾经尝试使用ajax来开发即时通讯,但是测试通不过,中午吃饭的时间回来一看浏览器,居然卡死了.不可否认的是,这能完成工作任务.但是作为技术来讲的话,这个方案是不行的.
客服系统:
首先,大家需要确认的一点就是:客服系统,它是一个独立的系统,和网站是分开的.它分3部分组成:WEB客户端,客服端和通信服务.
WEB客户端:这个大家都很明白,它是嵌入试的,它被嵌在每个产品页面中,甚至整个网站的每一个页面中.像掏宝和拍拍的产品页中都有这样的嵌入,只不过它启动的对象不同.
客服端:往往客服端一般的表现形式都是基于C/S模式的.为什么呢?因为客服端需要处理更多更繁杂的业务.它需要表现出来的功能完全要比WEB端要多的多,比如:对订单的处理,客户的咨询解答,发大量的文字资料(存储在数据库中),客户转交等等一系列复杂的业务处理.有人会说采用B/S模式也可以,对没错,是可以.但是客服需要的是更专业的服务,在没有客户的时候,客服也需要做其他的工作.那么就需要更方便的客服端了.而不是我必须订着浏览器不放.比如说:客服端托盘,有消息则冒泡等等操作.
通信服务:这个服务是专门建立前两者之间的通信通道的,而不是通过ajax频繁刷新来建立通道的.它的作用在于监听和复杂的消息处理.
WEBIM就不多谈了,原理其实是一样.不过它并没有C/S端,WEB+Server+WEB.当然也可以和QQ一样b/s,c/s都有,都能互通.那就关键在于你的Server处理了.
下面一些优缺点对比:
AjaxIM SocketIM
互通性: 被动 主动
复杂度: YES NO
扩展性: 低 高
维护性: 低 高
对比结果很明显,在OCP原则中ajaxim是抽象和实现都得改,是一条线的往下加,而SocketIM不同只需要增加新的业务规则.针对以前所定义好的抽象是不需要再改动的.
废话不多说了,有图有真相:
代码实现就不讲了,没这个必要.多看看书.
源码下载
------解决方案--------------------
------解决方案--------------------
不错,支持