介紹
99客服系統(tǒng)后端基于workerman開源框架柱恤,超高性能藏雏】娇觯客服系統(tǒng)源碼采用websocket協(xié)議實(shí)時(shí)通訊,最大程度保證低延遲掘殴。
相關(guān)功能:簡(jiǎn)單人數(shù)統(tǒng)計(jì)赚瘦,歷史會(huì)話管理,客服人員管理奏寨,后臺(tái)管理設(shè)置起意;
客服聊天模塊功能:當(dāng)前會(huì)話管理,歷史會(huì)話管理病瞳,個(gè)人信息設(shè)置揽咕;
訪客模塊功能:發(fā)送文字、表情消息套菜,消息提醒亲善;
客服系統(tǒng)代碼是開源的未加密,可二次開發(fā)逗柴。
支持手機(jī)h5蛹头、微信小程序、公眾號(hào)、安卓APP渣蜗、蘋果APP屠尊、PC瀏覽器、PC桌面軟件等多個(gè)端耕拷。
支持目前流行的AI大模型知染,實(shí)現(xiàn)了智能客服功能,可以將對(duì)話托管給AI機(jī)器人客服斑胜,設(shè)置知識(shí)庫(kù)控淡,讓AI自動(dòng)回復(fù)訪客的提問,大大減輕客服服端止潘。
支持已讀未讀反饋
支持多商家掺炭,多客服
客服系統(tǒng)源碼片段
后端推送接口
后端通過類似以下代碼推送事件及數(shù)據(jù)給客戶端。
use app\api\model\Push;
$push = new Push();
// 事件類型凭戴,可自己定義
$event = 'message';
$data = [
'uid' => '用戶uid',
'nickname' => '昵稱',
'avatar' => '頭像url',
'kf_id' => '客服id',
'content' => '消息內(nèi)容',
'timestamp' => '時(shí)間戳',
'author' => 'user',
'sub_type' => '消息類型'// message:普通消息涧狮;notice:系統(tǒng)消息;template_faq_item:常見問題模板消息
'mid' => $mid
];
// 給某個(gè)客服推送時(shí)channel為"kefu-$kf_id"么夫,給某個(gè)訪客推送時(shí)channel為"user-$bid-".bin2hex($uid)
$push->emit($channel, $event, $data);
-
$channel
:
給誰(shuí)推送者冤。channel用來標(biāo)記給哪個(gè)客戶端推送,當(dāng)給客服推送時(shí)channel為"kefu-bid-".bin2hex($uid)
-
$event
:
事件類型涉枫。99kf使用$event='message'
來標(biāo)記消息事件的推送。除了message
類型腐螟,還有settingChange
后臺(tái)設(shè)置變更事件愿汰、kefu_online_change
客服在線變更事件等。如有需要乐纸,開發(fā)者可以增加自已的自定義事件衬廷。
-
$data
:
事件相關(guān)的數(shù)據(jù)。根據(jù)data里的數(shù)據(jù)也不同吗跋。例如message
事件里data里傳遞的是客服在線狀態(tài)的一些數(shù)據(jù)宁昭。
注意:以上php接口只做消息推送跌宛,不會(huì)做數(shù)據(jù)存儲(chǔ)等操作。
客服前端接收接口
見 99kf-web/public/static/js/kefu.js
里 _99kf_com_.connect()
方法久窟。
var channel = 'kefu-' + kf_id;
var kefu_channel = _99kf_com_.connecter.subscribe(channel);
var event = 'message';
kefu_channel.on(event, function(data){
console.log(data.type);
});
訪客前端接收接口
見 99kf-web/public/static/js/user.js
里 _99kf_com_.connect()
方法秩冈。
// 這個(gè)channel值實(shí)際上是 /user/data/get 里的channel的值,實(shí)際上無需前端計(jì)算斥扛。
var channel = 'user-'+bid+'-'+bin2hex(uid);
var user_channel = _99kf_com_.connecter.subscribe(channel);
var event = 'message';
user_channel.on(event, function(data){
console.log(data.type);
});
源碼里推送接口已經(jīng)高度抽象入问,易用性丹锹、穩(wěn)定性一流。