聊天室场景下,消息丢弃策略

聊天室场景下,融云服务端默认单个聊天室中上行消息处理能力是每 200 毫秒 40 条,其中 20 条为高优先级消息使用配额,另外 20 条为高优先级和低优先级消息共同使用。

在聊天室消息量较大的情况下,融云服务器会按消息发送的时间顺序,将超出消费上限的最新消息丢弃,确保服务器稳定。

针对以上情况,为保证聊天室中重要消息不被丢弃,融云提供了以下服务:

1、聊天室用户白名单功能,白名单中用户发送的消息受到保护,在聊天室消息量较大的情况下保障级别最高。

2、聊天室消息白名单功能,该名单中的消息受到保护,在聊天室消息量较大的情况下保障级别最高。

3、聊天室消息优先级功能,该功能为设置低优先级的消息类型,在聊天室消息量较大的情况下,此类型的消息将被优先抛弃,确保重要消息不被丢弃。

注:未设置情况下融云的所有消息均为高优先级消息。

以上功能设置后,服务端收到聊天室上行消息时,根据消息类型的设置状态,处理逻辑如下:

针对普通消息(包含高优先级和低优先级)和白名单消息进行消息计数,普通消息频次默认为每 200 毫秒 40 条,白名单消息频次默认每 200 毫秒 60 条。

a、上行消息为普通消息时,默认每 200 毫秒可以发送 40 条,其中 20 条为高优先级消息份额,剩余 20 条为高优先级消息和低优先级消息共用,按消息先后顺序,超出部分即丢弃。

b、上行消息为白名单消息时(白名单消息类型或白名单用户发出的消息),会占用普通消息计数(40 条)、及白名单消息计数(20 条),最多可发送 60 条,当累计最多超过 60 条之后,聊天室中新消息将进行丢弃。

注:单个聊天室默认的每 200 毫秒 60 条的上行消息配额,开通专有云后可进行配置。