排查 IM 消息丢失

该文档已更新,详见 如何排查环信即时通讯消息丢失


有时会有用户反馈IM丢消息。在这种情况下,我们建议先进行以下步骤自查。如果没发现问题,可以提交工单由环信技术支持同事协助排查。

在使用环信聊天的过程中,如果遇到用户A给用户B发消息或者用户A与用户B在同一个群组中,用户A向群组中发消息,用户B没有接收到的情况(视为消息丢失),可以按照下面的说明进行排查。


排查IM单聊消息丢失:

使用环信SDK集成阶段:

用户B在线的情况下收不到用户A发的消息:

1.检查用户A发送的消息是否成功,可以根据SDK发消息方法返回的error判断消息是否发送成功,如果发送失败,则用户B收不到消息

2.检查用户A给用户B发消息时,传的环信id是否正确,如果传的不是用户B的环信id,那么用户B收不到消息

3.检查用户B是否将用户A加入黑名单 ,如果用户B把用户A加入黑名单,那么用户B收不到用户A发的消息,详见 获取黑名单

用户B不在线时,用户A给用户B发消息,用户B重新登录后收不到消息:

1.确认用户B是否有在多台设备上登录的情况,可能存在用户B在其他设备上登录把离线消息接收走了,在当前设备登录时将不再接收消息

2.确认用户B的离线数量是不是很大,如果超过500条,那么用户B只会收到最新的500条消息,超过500条的那部分消息将接收不到

使用环信SDK,app已经上线,线上用户出现消息丢失的情况:

1.先与自己的客户确认是否存在 '用户B不在线时,用户A给用户B发消息,用户B重新登录后收不到消息' 下描述的1,2两种情况。

2.提供appkey,环信id,丢失的消息内容,发送消息的时间,然后登录环信管理后台,提交工单,让环信的技术支持排查。 环信管理后台


排查IM群聊消息丢失:

使用环信SDK集成阶段:

用户B在线的情况下收不到用户A发的群组消息:

1.检查用户A在构建消息时,传的消息类型是不是群聊类型的,如果不是用户B则收不到用户A发的群组消息,详见 iOS 构建消息 安卓 构建消息

2.检查用户A发送的消息是否成功,可以根据SDK发消息方法返回的error判断消息是否发送成功,如果发送失败,则用户B收不到用户A发送的群组消息

3.检查用户A给用户B发消息时,传的群组id是否正确(是否为A与B共同加入的群组id),如果传的不是正确的群组id,那么用户B收不到消息用户A发的群组消息

4.检查用户B是否在群组中,可以获取群组详情,看群组中是否有用户B,详见 获取群组详情

5.检查用户B是否屏蔽了该群组消息,如果用户B屏蔽了该群组消息,那么将收不到用户A发的群组消息,详见 iOS SDK查看方法 安卓 SDK查看方法

6.检查用户B是否被加入了群组黑名单,如果用户B被加入到了群组黑名单,那么将收不到用户A发的群组消息,详见 获取群组黑名单

用户B不在线时,用户A向群组中发送消息,用户B重新登录后收不到群组消息:

1.确认用户B是否有在多台设备上登录的情况,可能存在用户B在其他设备上登录把离线消息接收走了,在当前设备登录时将不再接收消息

2.确认用户B所在的群组的离线数量是不是很大,如果超过200条,那么用户B只会收到最新的200条群组消息,超过200条的那部分群组消息将接收不到

使用环信SDK,app已经上线,线上用户出现群组消息丢失的情况:

1.先与自己的客户确认是否存在,'用户B在线的情况下收不到用户A发的群组消息:'下描述的3,4,5三种情况, 以及'用户B不在线时,用户A向群组中发送消息,用户B重新登录后收不到群组消息:' 下描述的1,2两种情况。

2.提供appkey,群组id,丢失的消息内容,发送消息的时间,然后登录环信管理后台,提交工单,让环信的技术支持排查。 环信管理后台