使用环境是网页聊天(客服用)+App 聊天(用户端),先假设有客服 A 和用户 B 的私聊会话
需求是客服需要查看跟用户以往的聊天记录,但是极光 IM 的网页端 sdk 是不支持查看聊天记录的,而 App 端 sdk 也仅支持查看手机 App 本地存储的聊天记录
极光有提供REST API 读取用户聊天记录接口,但只针对单一用户发出的聊天记录。
也就是说查看一个双人私聊记录要同时读取客服 A 和用户 B 的聊天记录,再从这两个数组中找出出客服 A 发给用户 B 、用户 B 发给客服 A 的消息,才能组成完整的双人私聊记录,这就很费时费力了。
也在极光社区咨询过,得到的答复是的确没有直接查看双人私聊记录的 REST API 接口。
那么问题来了,实现双人私聊记录的最佳实践是什么样呢?
我想到三个方案:
第一方案是用两个用户 uuid 拼起来的文本文件存放(uuid[].sort().join('_')
),例如
650ed3f2-061e-48cb-9748-e10af95cbb3a_c339f272-4be1-4e9f-9245-45e3a6ca5abb.txt
缺点是当聊天量多起来后对服务器的 io 有很大影响。
第二个方案简单直接不消耗我方服务器资源,直接查看聊天室聊天记录就可以了。
缺点是极光 IM 的私聊和聊天室功能体验有较大差距,例如私聊支持离线消息,而聊天室是不支持的
第三个方案也不消耗我方服务器资源,也可以继续使用私聊功能,似乎是一个很好的折中方案?
大家有什么更好的想法或建议吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.