fonchain-fiee/pkg/service/asChat/readme.md
2025-06-12 17:07:49 +08:00

1.7 KiB
Raw Blame History

asChat 客服聊天

聊天室主要流程与功能描述

  1. 用户通过画家包登录
  2. 打开客服页面。 画家宝客户端自动进行websocket连接后台会自动创建一个默认聊天室聊天室携带一个SessionId
  3. 用户调用api接口发送消息。 服务端接收到消息后会通过websocket通知聊天室里面所有用户。
  4. erp首次打开客服菜单时会进行websocket连接并调用一次api接口刷新消息列表。后续通过websocket接收消息推送收到消息时应主动调用一次消息列表刷新接口。
  5. erp客服端发送消息时加入到此聊天室。
  6. 用户端调用api接口获取新消息列表。

客户端应具备的其它功能

  1. weboscket断开自动重连
  2. 当通过websocket接收到错误类型的消息应具备对应的错误处理机制

    错误消息示例

{"type":1,"content":"Connection error:登录状态失效","from":"0","to":"null"}

服务端应具备的功能

  1. 通过redis缓存聊天消息
  2. 通过redis缓存用户的sessionId避免ws断开后找不到之前的sessionId
  3. 客服端由于不是画家宝用户没有userId。在websocket连接时如果找不到userId应该为其在画家宝创建一个账号。且经纪人不可见。
  4. 由于没有创建聊天室的需求,所以每个用户使用一个聊天室即可。客服与之对话时,就自动加入用户端的聊天室
  5. 新消息统计
  • 当发送消息时,该聊天室中除了发信者以外,其它用户的新消息数都+1录入缓存。
  • 当新客服人员加入时,没有新消息统计的缓存。他的新消息数量应该从创建时间开始计算,所以都是0。