项目终于忙的差不多了,也该动手做点记录或者总结了....这段时间使用php+mysql+redis+nginx_push_stream模块搭建一个简单的在线客服系统。简单记录项目开发过程中遇到的一些问题,及解决方法吧。
一、客服可以同时处理多个请求,同时进行排队和分配处理。
解决方法:
在客服人员登录系统后,把客服加入到客服队列,同时设置每个客服的接待人数,当客户请求的时候进行增加客服的接待同时指向下一个可以接待客服。客服处理完一个聊天时将该客服的
处理能力增加。当客服的处理能力为零,移出客服队列。
二、客户排队或者直接分配处理
解决方法:
客户端首先发送请求查看是否有自动分配的客服队列,如果有的话直接分配客服处理,如果没有就查看排队队列是否已满,如果没有满的话,加入到客户请求排队队列,同时如果是排队
客户端要不停的轮询该客户是否已经被处理或者分配处理客服。
三、客服自动回复设置。
解决方法:
很多的聊天系统中,都有自动回复的功能,就是在客户收到信息后开始计时该客户是否已经响应,如果没有响应那么就开始不断的查询和计时。这里使用javascript的setInterval来实现。
var start_time ,timer;//全局定义 /* *在需要开始计时的地方调用 */ start_time = Date.parse(new Date()); timer = window.setInterval(check_time,3000);//30检查一次 /* *在需要开始计时或者重新计时的地方调用 */ start_time = Date.parse(new Date()); function check_start_time() { ; var now = Date.parse(new Date()); var interval = parseInt((now - start_time) / 1000); if (interval >= 30) { //超时处理 start_time = now; //重新计时 } };
代码并不复杂,只要每隔一定的时间检查,如果无超时不做处理,超时的话就按照超时处理就行了。
原文:http://www.cnblogs.com/wujindou/p/3638281.html