.NetCore基于SignalR、Reids实现客服WebIM系统

前言

之前呢,写过一些关于SignalR+Redis实现WebIM的架构设计以及代码的部分实现、最终的效果图。最近也不是很忙,就想着把这个项目完善下,下面是大致的记录。
第一篇 WebIM项目的架构设计以及实现

第二篇 .Net Core +signlar + redis webim代码实现(一) 

第三篇 .Net Core +signlar + redis webim代码实现(二)

第四篇 .Net Core +signlar + redis webim代码实现(三) 


完善过程中的思考:既然是一个WebIM客服系统,说明当前系统与自己的业务系统关联性不强。基于这个前提,最终把WebIM完善成了一个易接入高度开放不依赖于业务系统支持接入多个业务系统的售后服务系统

一、使用步骤

  1. 引用js类库:signlar.51softwarebox.com/script/signalr/ChatMain1.0.js
  2. 业务页面初始化客服
     InitChatUser({
            UserID: '当前业务系统登录用户ID',
            UserName: '当前业务系统登录用户姓名',
            UserNickName: '当前业务系统登录用户昵称',
            UserAccount: '当前业务系统登录用户账号',
            SystemCode: '当前业务系统编码'
        }, function (res) {
            new InitChat({ 
                Text: '按钮标题',
                TextColor: '标题颜色',
                BackGroundColor: '按钮背景色',
                BottomRange: '按钮距离网页底部距离',
                RightRange: '按钮距离网页右边距离',
                BorderRadius: '按钮边角大小',
                IsOpenNewTarget: false, // 点击按钮是否全屏打开客服系统,默认当前页面弹出(非全屏)
                IsShowIcon: true, //是否显示图标
                IsOpenChatState: false //是否已打开客服系统,点开一次,刷新当前页面,是否自动打开,当IsOpenNewTarget=false时生效
            });
        });
  3. 此时页面右小角已出现客服系统的按钮角标,点击即可沟通

二、高度开放,接口API

  1. 引用js文件
  2. 业务系统页面可使用的API接口
    1. GetChatRecordPageFun(res):接受发送过来的消息内容【包含对方/自己】--可用于自定义UI样式
    2. var chatService = new InitChatService({}),实例化之后,可以使用一下方法UI、功能自定义 
      1. chatService.SendMsg(msg, callFn):发送消息
      2. chatService.GetChatRecordPage(currentPage, pageSize, callFn):分页获取历史消息
      3. chatService.SaveUserThumbsUpInfo (evaluateInfo, callFn, errFn):保存用户点评
      4. chatService.SaveGuestBookInfo(guestBookInfo, callFn, errFn):保存用户点评
    3. 全局工具类:ChatUtil
      1. ChatUtil.isFunction(fn):判断当前参数类型是否是方法
      2. ChatUtil.Encryption.encode(str):加密
      3. ChatUtil.Encryption.decode(str):解密
      4. ChatUtil.GetUserInfo():获取当前用户信息
      5. ChatUtil.GetGuid():生成guid
      6. ChatUtil.SetCookie(name, value, Day):设置cookie(第一个cook名称,第二个cook值,第三个存放时间长)
      7. ChatUtil.GetCookie(name):通过name获取cookie
      8. ChatUtil.ObjToStr(obj):对象转字符串【name1=val1&name2=val2】
  3. 更多API正在开发开放中...

总结

当前WebIM也正在逐步完善,有需要或者是建议欢迎留言~~~

你可能感兴趣的:(.NetCore,.netcore,WebIm,SignalR,websocket)