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