日期:2014-05-20  浏览次数:20771 次

[分享]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不同只需要增加新的业务规则.针对以前所定义好的抽象是不需要再改动的.

废话不多说了,有图有真相:




代码实现就不讲了,没这个必要.多看看书.


源码下载

------解决方案--------------------
探讨
,忘记吃午饭了.

------解决方案--------------------
不错,支持