单聊会话一般指的是两个人之间收发消息,AIM把单聊分为标准单聊和自定义单聊两类。本文介绍标准单聊和自定义单聊的功能,以及两者之间的差异。

  • 标准单聊是简化版本,易用接入成本低,如无特殊需求,开发者选择标准单聊即可。
  • 自定义单聊具有更强的扩展性,但相应带来了复杂度和更高的使用成本。

两种单聊会话均支持免打扰、清红点、置顶、隐藏操作。

标准单聊

标准单聊是只有两个账号参与的会话,会话ID(AppCid)由业务方传入,AppCid的格式为$1$UrlEncode(AppUid1):UrlEncode(AppUid2),包含聊天双方的账号ID(AppUid),可从AppCid反向解析出参与单聊的两个账号。

建议开发者尽量采用标准单聊,标准单聊能够降低成本。原因如下:
  • AppServer可以不实现回调。
  • AppServer调用AIMServer的消息发送(SendMessage)接口时,不需要填写singleChatCreateRequest选项。

自定义单聊

在多人参与的场景中,会话创建时会带有更多的信息,使用标准单聊无法满足需求。比如客服场景下可能存在多个客服服务同一个用户的,此时推荐使用自定义单聊。

自定义单聊的AppCid以$3$开头,由AppServer产生,AIMServer在创建会话和会话视图时回调AppServer,AppServer可以自定义AppCid和设置会话自定义信息。

开发者如果选择使用自定义单聊,需要实现以下逻辑:
  • AppServer实现创建会话回调。
  • AppServer实现创建会话视图的回调。
  • AppServer调用AIMServer的消息发送(SendMessage)接口时,需填写singleChatCreateRequest选项。

差异对比

类型 标准单聊 自定义单聊
定义 AppCid由平台产生,参与聊天的账号只有两个。 AppCid由业务侧产生。
会话和会话视图回调 可选择不回调。 必须配置回调。
AppCid格式 $1$UrlEncode(AppUid1):UrlEncode(AppUid2) $3$+应用自定义部分。
AppCid格式说明
  • 以$1$开头。
  • AppUid1和AppUid2是UTF8字符串。
  • UrlEncode后字典序小的在前。
  • 举例:$1$123:789
  • 以$3$开头。
  • 后面接自定义字符。自定义单聊的保留字符,请参见字段限制
  • 后面接自定义字符。
  • 举例:$3$123-789-orderId
使用场景 实际场景绝大多数的业务方用不到自定义能力。

当使用标准单聊时,由平台产生AppCid,不需要实现单聊会话相关的回调。

客服场景。