1.7 KiB
1.7 KiB
asChat 客服聊天
聊天室主要流程与功能描述
- 用户通过画家包登录
- 打开客服页面。 画家宝客户端自动进行websocket连接,后台会自动创建一个默认聊天室(聊天室携带一个SessionId)
- 用户调用api接口,发送消息。 服务端接收到消息后,会通过websocket通知聊天室里面所有用户。
- erp首次打开客服菜单时,会进行websocket连接,并调用一次api接口刷新消息列表。后续通过websocket接收消息推送,收到消息时,应主动调用一次消息列表刷新接口。
- erp客服端发送消息时,加入到此聊天室。
- 用户端调用api接口获取新消息列表。
客户端应具备的其它功能
- weboscket断开自动重连
- 当通过websocket接收到错误类型的消息,应具备对应的错误处理机制
错误消息示例
{"type":1,"content":"Connection error:登录状态失效","from":"0","to":"null"}
服务端应具备的功能
- 通过redis缓存聊天消息
- 通过redis缓存用户的sessionId避免ws断开后,找不到之前的sessionId
- 客服端由于不是画家宝用户,没有userId。在websocket连接时,如果找不到userId,应该为其在画家宝创建一个账号。且经纪人不可见。
- 由于没有创建聊天室的需求,所以每个用户使用一个聊天室即可。客服与之对话时,就自动加入用户端的聊天室
- 新消息统计
- 当发送消息时,该聊天室中除了发信者以外,其它用户的新消息数都+1,录入缓存。
- 当新客服人员加入时,没有新消息统计的缓存。
他的新消息数量应该从创建时间开始计算,所以都是0。