极光 IM 的 REST API 没有读取双人私聊聊天记录的接口,那么在极光 IM 的基础上实现私聊聊天记录的最佳实践是什么样呢?

2022-06-25 23:04:13 +08:00
 gzlock

使用环境是网页聊天(客服用)+App 聊天(用户端),先假设有客服 A 和用户 B 的私聊会话

需求是客服需要查看跟用户以往的聊天记录,但是极光 IM 的网页端 sdk 是不支持查看聊天记录的,而 App 端 sdk 也仅支持查看手机 App 本地存储的聊天记录

极光有提供REST API 读取用户聊天记录接口,但只针对单一用户发出的聊天记录。

也就是说查看一个双人私聊记录要同时读取客服 A 和用户 B 的聊天记录,再从这两个数组中找出出客服 A 发给用户 B 、用户 B 发给客服 A 的消息,才能组成完整的双人私聊记录,这就很费时费力了。

也在极光社区咨询过,得到的答复是的确没有直接查看双人私聊记录的 REST API 接口。

那么问题来了,实现双人私聊记录的最佳实践是什么样呢?

我想到三个方案:

  1. 在自己服务器上记录双人私聊的聊天内容
  2. 使用聊天室会话代替双人私聊会话
  3. 每个双人私聊会话开设一个两人聊天室会话,将私聊会话的内容转发到聊天室会话,查看聊天室聊天记录等于查看私聊聊天记录

第一方案是用两个用户 uuid 拼起来的文本文件存放(uuid[].sort().join('_')),例如 650ed3f2-061e-48cb-9748-e10af95cbb3a_c339f272-4be1-4e9f-9245-45e3a6ca5abb.txt

缺点是当聊天量多起来后对服务器的 io 有很大影响。

第二个方案简单直接不消耗我方服务器资源,直接查看聊天室聊天记录就可以了。

缺点是极光 IM 的私聊和聊天室功能体验有较大差距,例如私聊支持离线消息,而聊天室是不支持的

第三个方案也不消耗我方服务器资源,也可以继续使用私聊功能,似乎是一个很好的折中方案?

大家有什么更好的想法或建议吗?

1122 次点击
所在节点    程序员
1 条回复
gzl0ck
2022-06-27 10:29:32 +08:00
没有回复😂

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/862210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX