前言
之前呢,写过一些关于SignalR+Redis实现WebIM的架构设计以及代码的部分实现、最终的效果图。最近也不是很忙,就想着把这个项目完善下,下面是大致的记录。
第一篇 WebIM项目的架构设计以及实现
第二篇 .Net Core +signlar + redis webim代码实现(一)
第三篇 .Net Core +signlar + redis webim代码实现(二)
第四篇 .Net Core +signlar + redis webim代码实现(三)
完善过程中的思考:既然是一个WebIM客服系统,说明当前系统与自己的业务系统关联性不强。基于这个前提,最终把WebIM完善成了一个易接入、高度开放、不依赖于业务系统、支持接入多个业务系统的售后服务系统
一、使用步骤
- 引用js类库:signlar.51softwarebox.com/script/signalr/ChatMain1.0.js
- 业务页面初始化客服
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时生效 }); });
- 此时页面右小角已出现客服系统的按钮角标,点击即可沟通
二、高度开放,接口API
- 引用js文件
- 业务系统页面可使用的API接口
- GetChatRecordPageFun(res):接受发送过来的消息内容【包含对方/自己】--可用于自定义UI样式
- var chatService = new InitChatService({}),实例化之后,可以使用一下方法UI、功能自定义
- chatService.SendMsg(msg, callFn):发送消息
- chatService.GetChatRecordPage(currentPage, pageSize, callFn):分页获取历史消息
- chatService.SaveUserThumbsUpInfo (evaluateInfo, callFn, errFn):保存用户点评
- chatService.SaveGuestBookInfo(guestBookInfo, callFn, errFn):保存用户点评
- 全局工具类:ChatUtil
- ChatUtil.isFunction(fn):判断当前参数类型是否是方法
- ChatUtil.Encryption.encode(str):加密
- ChatUtil.Encryption.decode(str):解密
- ChatUtil.GetUserInfo():获取当前用户信息
- ChatUtil.GetGuid():生成guid
- ChatUtil.SetCookie(name, value, Day):设置cookie(第一个cook名称,第二个cook值,第三个存放时间长)
- ChatUtil.GetCookie(name):通过name获取cookie
- ChatUtil.ObjToStr(obj):对象转字符串【name1=val1&name2=val2】
- 更多API正在开发开放中...
总结
当前WebIM也正在逐步完善,有需要或者是建议欢迎留言~~~