99客服系统源码后端基于workerman框架,超高性能。客服系统采用websocket协议实时通讯,最大程度保证低延迟。
相关功能:简单人数统计,历史会话管理,客服人员管理,后台管理设置;
客服聊天模块已实现功能:当前会话管理,历史会话管理,个人信息设置;
访客模块已实现功能:发送文字、表情消息,消息提醒;
点击这里购买在线客服系统源码
后端通过类似以下代码推送事件及数据给客户端。
use app\api\model\Push;
$push = new Push();
// 事件类型,可自己定义
$event = 'message';
$data = [
'uid' => '用户uid',
'nickname' => '昵称',
'avatar' => '头像url',
'kf_id' => '客服id',
'content' => '消息内容',
'timestamp' => '时间戳',
'author' => 'user',
'sub_type' => '消息类型'// message:普通消息;notice:系统消息;template_faq_item:常见问题模板消息
'mid' => $mid
];
// 给某个客服推送时channel为"kefu-$kf_id",给某个访客推送时channel为"user-$bid-".bin2hex($uid)
$push->emit($channel, $event, $data);
$channel
:
给谁推送。channel用来标记给哪个客户端推送,当给客服推送时channel为"kefu-$kf_id",给某个访客推送时channel为"user-$bid-".bin2hex($uid)
$event
:
事件类型。99kf使用$event='message'
来标记消息事件的推送。除了message
类型,还有settingChange
后台设置变更事件、kefu_online_change
客服在线变更事件等。如有需要,开发者可以增加自已的自定义事件。
$data
:
事件相关的数据。根据$event不同,$data里的数据也不同。例如message
事件里$data携带消息相关数据,kefu_online_change
事件$data里传递的是客服在线状态的一些数据。
注意:以上php接口只做消息推送,不会做数据存储等操作。
见 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()
方法。
// 这个channel值实际上是 /user/data/get 里的channel的值,实际上无需前端计算。
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);
});
极度支持!
楼主,最后那个聊天页面哪里来的?
哈哈,想学习下如何开发客服系统源码
啥框架,tp?webman?
thinkphp一样的用法,性能高10倍,那必须webman
现在都是AI人工智能的时代了,希望支持大模型啊
已经很好了,要什么自行车?
感谢建议,已经支持了,测试效果很好
已收藏,估计后面用到
客服系统用户昵称怎么传递呢?
通过url参数传递用户信息
ok