Open wujun4code opened 6 years ago
public class AVIMClient { /// <summary> /// 一些可变的配置选项,便于应对各种需求场景 /// </summary> public struct Configuration { public bool AutoRead { get; set; } } public Configuration CurrentConfiguration { get; set; } }
为了配合 v.3 协议,因为这个协议下,在线收到消息之后,需要手动的标记已读,所以给一个默认的属性在 AVIMClient 上,如果 AutoRead 为 true,SDK 在接收到新消息的时候,立即告诉服务端当前消息已读,这种情况符合大多数情况下的需求(微信/游戏等),不是很强烈要求已读回执的需求场景下理论上是更常见的实际场景,所以应该把 钉钉(强制需要知道每一个人的已读回执) 那种需求视为叫少数,因此该属性默认 ture,并且在允许开发者设置为 false:
开发者想要收到消息就标为已读不是一行代码的事情吗?为啥要 SDK 加开关来做这个事情。
我理解不想手动 read 就用 v1 好了。
Quick Look
Why?
为了配合 v.3 协议,因为这个协议下,在线收到消息之后,需要手动的标记已读,所以给一个默认的属性在 AVIMClient 上,如果 AutoRead 为 true,SDK 在接收到新消息的时候,立即告诉服务端当前消息已读,这种情况符合大多数情况下的需求(微信/游戏等),不是很强烈要求已读回执的需求场景下理论上是更常见的实际场景,所以应该把 钉钉(强制需要知道每一个人的已读回执) 那种需求视为叫少数,因此该属性默认 ture,并且在允许开发者设置为 false:
- 如果在 AVIMConversation 上的设置 AutoRead 为 false,那么当前对话不会自动上报已读回执- 如果 AVIMClient 和 AVIMConversation 设置的 AutoRead 冲突,以 AVIMConversation 的为准