基于workerman开发的在线客服系统源码-99客服

99客服

客服系统源码介绍

99客服系统源码后端基于workerman框架,超高性能。客服系统采用websocket协议实时通讯,最大程度保证低延迟。

  • 客服系统代码是开源的未加密,可二次开发。
  • 支持手机h5、微信小程序、公众号、安卓APP、苹果APP、PC浏览器、PC桌面软件等多个端。
  • 支持目前流行的AI大模型,实现了智能客服功能,可以将对话托管给AI机器人客服,设置知识库,让AI自动回复访客的提问,大大减轻客服服端。
  • 支持已读未读反馈
  • 支持多商家,多客服

相关功能:简单人数统计,历史会话管理,客服人员管理,后台管理设置;
客服聊天模块已实现功能:当前会话管理,历史会话管理,个人信息设置;
访客模块已实现功能:发送文字、表情消息,消息提醒;

点击这里购买在线客服系统源码

源码片段

后端推送接口

后端通过类似以下代码推送事件及数据给客户端。

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);
});

界面截图

截图

19876 7 5
7个评论

osacar

极度支持!

  • 暂无评论
自行车

楼主,最后那个聊天页面哪里来的?

  • 暂无评论
keytehu

哈哈,想学习下如何开发客服系统源码

  • 暂无评论
抽不完的寂寞

啥框架,tp?webman?

  • 99客服 2024-10-11

    thinkphp一样的用法,性能高10倍,那必须webman

xiuwang

现在都是AI人工智能的时代了,希望支持大模型啊

  • yongdao35 2024-10-09

    已经很好了,要什么自行车?

  • 99客服 28天前

    感谢建议,已经支持了,测试效果很好

damao

已收藏,估计后面用到

  • 暂无评论
six

客服系统用户昵称怎么传递呢?

  • 99客服 22天前

    通过url参数传递用户信息

    • name传递用户名
    • uid传递用户id
    • avatar传递用户头像
  • six 17天前

    ok

年代过于久远,无法发表评论

99客服

120
积分
0
获赞数
0
粉丝数
22天前 加入
×
🔝