前言 本文我们基于飞书开放平台提供的服务端SDK,展示下如何查询一个消息有哪些人已读了。...os.Getenv("APP_ID"), os.Getenv("APP_SECRET") client := lark.NewClient(appID, appSecret) // 发送消息...= nil { fmt.Println(err) return } // 读取已读信息 ReadUsersMsg(client, msgID)...// 读取已读信息 ReadUsersMsg(client, msgID) } debug运行,然后再ReadUsersMsg处断点,然后再飞书上读消息后,继续运行结果如下: image.png
blocks|key|74789|text||type|atomic|depth|inlineStyleRanges|entityRanges|offset|l...
前言 一款app,消息页面有:钱包通知、最近访客等各种通知类别,每个类别可能有新的通知消息,实现已读、未读功能,包括多少个未读,这个是怎么实现的呢?...所有,判断有没有小红点,或者小红点的数字是多少,就是简单的获取你与虚拟人的对话的未读的消息的数量。...当然,一个动作不一定只发一条消息,比如,图中下方有个金刚键"消息",它是所有消息的总和,所以,投递其他消息的时候,也要给它投递一次,不过它只展示一个未读数字,所以这个消息只需要一个msg_id即可,不需要消息..."已读和未读"。它包含两层意思,一个判否,即内容你是否读过,二是计数,即这个内容有多少人读过。 长尾原因 如果你用Redis存储,成本非常高,浪费非常严重。...这个时候,通常的策略是"[log record]"和"comb", 我们每产生一个动作,比如读,赞,收藏,就会产生一个log record( 取关,取消赞...也是一条独立的log record),我们由专门的大数据系统统一收集这些
一朋友和我讨论他前段时间面试某大公司的一题目: 企业IM比如企业微信、钉钉里面的群消息的有个已读未读的功能,发送者刚发出消息时,当前群里其他群成员都是未读状态,陆陆续续有人看了这个消息,这时候消息的详情变成...x人已读,y人未读,如下图所示,有具体的已读未读列表(万恶的功能,看到同事or老板的消息不能假装没看到了),每条消息对应一个唯一的messageid(uint64_t),每个用户对应一个唯一的userid...(uint64_t),应该如何保存这个消息对应的已读未读详情呢?...仔细分析,按照目前的设计,每一条消息,已读未读详情就要占用8B * 群成员数的内存,如果一个活跃的200人大群,每发一条消息,已读未读就要1600B,如果平均每天消息量是1k,那每个这样的群,每天就要1.6MB...比如C退出群,发消息时maxid还是5,已读+未读总人数应该是3(不包括发消息者本人),目前信息只有5个bit(0/1),识别不出来谁已经退出群聊了 退出群聊的成员如何处理?
一朋友和我讨论他前段时间面试某大公司的一题目 : 企业IM比如企业微信、钉钉里面的群消息的有个已读未读的功能,发送者刚发出消息时,当前群里其他群成员都是未读状态,陆陆续续有人看了这个消息,这时候消息的详情变成...x人已读,y人未读,如下图所示,有具体的已读未读列表(万恶的功能,看到同事or老板的消息不能假装没看到了),每条消息对应一个唯一的messageid(uint64_t),每个用户对应一个唯一的userid...(uint64_t),应该如何保存这个消息对应的已读未读详情呢?...仔细分析,按照目前的设计,每一条消息,已读未读详情就要占用8B * 群成员数的内存,如果一个活跃的200人大群,每发一条消息,已读未读就要1600B,如果平均每天消息量是1k,那每个这样的群,每天就要1.6MB...比如C退出群,发消息时maxid还是5,已读+未读总人数应该是3(不包括发消息者本人),目前信息只有5个bit(0/1),识别不出来谁已经退出群聊了 2、退出群聊的成员如何处理?
更有甚者,钉钉的群聊“强制已读回执”功能,甚至能够知道谁读了消息,谁没有读消息(老板的福音啊)。 那么群聊消息的收发流程、消息的送达保证、已读回执机制,到底该怎么实现呢?这就是今天要讨论的话题。...2、IM开发干货系列文章 本文是系列文章中的第14篇,总目录如下: 《IM消息送达保证机制实现(一):保证在线实时消息的可靠投递》 《IM消息送达保证机制实现(二):保证离线消息的可靠投递》 《如何保证...如您对聊天消息的投递和送达机制等尚无概念,可先读本系列文章的以下几篇,有助于您详细掌握这方面的内容: 《IM消息送达保证机制实现(一):保证在线实时消息的可靠投递》 《IM消息送达保证机制实现(二):保证离线消息的可靠投递...7、已读回执流程优化方案 再次详细的分析下,群消息已读回执的“消息风暴扩散系数”,假设每个群有200个用户,其中20%的用户在线,即40各用户在线。...8、本文小结 对于群消息已读回执,一般来说: 如果发送方在线,会实时被推送已读回执; 如果发送方不在线,会在下次在线时拉取已读回执。
在读研二学生娃,目前从事医学图像处理方向,在 OpenMMLab 社区遇到了很多小伙伴,希望能和大家共同学习和进步,感谢 OpenMMLab 为我们提供方便的学...
- 添加 3 个旋转检测算子,分别是 RotatedFeatureAlign、RiRoIAlignRotated、PointsInPolygons
Copilot 是 github 出品的一款基于 AI 的编程辅助编程工具,通俗点的说法就是:帮你写代码。
年关将至,学妹却因为男朋友不愿意带她回家过年而难过,我劝学妹主动点,自己多提几次,但是学妹觉得身为女孩子不能太主动。
前提: 假如现在有2个模块需要提示消息:只要存在用户在上个时间点之后没有看过的信息就提示用户有新的信息 思路如下: 使用hash存储用户上次看过的时间,使用sortedset存储每个模块的每个信息产生的时间
1、引言 张小龙说:微信消息不做“已读”和“未读”的功能,是因为要给人撒谎的机会,这才符合人性。 真的对吗? 关于这个问题……对,也不对。...▲ 市面上有很多IM提供了已读功能,上图从上至下分别为:钉钉、易信、旺旺(千牛) (上图引用自文章《IM群聊消息的已读回执功能该怎么实现?》)...▲ 阿里旺旺的PC端消息“已读”功能 换句话说:聊天消息的“已读”和“未读”状态在什么情况下该做呢? 这是一个典型的功能分析,遇到这种分析,我们应该如何用产品思维入手呢?...3.2 第二步:本源思维:定位+场景 我们先来看看两个网友,对于微信消息为什么没有“已读”和“未读”功能的优质回答。...▲ “抢红包”的牛X之处在于:居然能让面对面的两个人使用IM却不觉乏味 5、补充 本文是从产品角度讨论微信中的消息“已读”功能,如果您对消息“已读”功能的理论和技术实现有兴趣,可以进一步阅读《IM群聊消息的已读回执功能该怎么实现
1、引言 张小龙说:微信消息不做“已读”和“未读”的功能,是因为要给人撒谎的机会,这才符合人性。 真的对吗? 关于这个问题……对,也不对。 ? ? ?...▲ 市面上有很多IM提供了已读功能,上图从左至右分别为:钉钉、易信、旺旺(千牛) (上图引用自文章《IM群聊消息的已读回执功能该怎么实现?》)...▲ 阿里旺旺的PC端消息“已读”功能 换句话说:聊天消息的“已读”和“未读”状态在什么情况下该做呢? 这是一个典型的功能分析,遇到这种分析,我们应该如何用产品思维入手呢?...3.2 第二步:本源思维:定位+场景 我们先来看看两个网友,对于微信消息为什么没有“已读”和“未读”功能的优质回答。...▲ “抢红包”的牛X之处在于:居然能让面对面的两个人使用IM却不觉乏味 5、补充 本文是从产品角度讨论微信中的消息“已读”功能,如果您对消息“已读”功能的理论和技术实现有兴趣,可以进一步阅读《IM群聊消息的已读回执功能该怎么实现
有甚者,钉钉的群有“强制已读回执”功能,你在群里发出的消息,能够知道谁读了消息,谁没有读消息。...二、已读回执流程 对于发送方发送的任何一条群消息,都需要知道,这条消息有多少人已读多少人未读,就需要一个基础表来记录这个关系。 消息回执表:用来记录消息的已读回执。...(如果发送方在线) 如果发送方不在线,ta会在下次登录的时候: (5)从关联表里拉取每条消息的已读回执 这里的初步结论是: 如果发送方在线,会实时被推送已读回执 如果发送方不在线,会在下次在线时拉取已读回执...答:回执数据不是核心数据 已读的消息,可以进行物理删除,而不是标记删除 超过N长时间的回执,归档或者删除掉 四、总结 对于群消息已读回执,一般来说: 如果发送方在线,会实时被推送已读回执 如果发送方不在线...,会在下次在线时拉取已读回执 如果要对进行优化,可以: 接收方累计收到N条群消息再批量ack 发送方轮询拉取已读回执 物理删除已读回执数据,定时删除或归档非核心历史数据 推送还是拉取?
- 修复 MultiScaleDeformableAttention 在 CPU 设备上的推理报错问题
,发送者刚发出消息时,当前群里其他群成员都是未读状态,陆陆续续有人看了这个消息,这时候消息的详情变成x人已读,y人未读,如下图所示,有具体的已读未读列表(万恶的功能,看到同事or老板的消息不能假装没看到了...),每条消息对应一个唯一的messageid(uint64_t),每个用户对应一个唯一的userid(uint64_t),应该如何保存这个消息对应的已读未读详情呢?...仔细分析,按照目前的设计,每一条消息,已读未读详情就要占用8B * 群成员数的内存,如果一个活跃的200人大群,每发一条消息,已读未读就要1600B,如果平均每天消息量是1k,那每个这样的群,每天就要1.6MB...{ uint32_t maxid, uint8_t readbit[]} 如上面的案例就是{5, readbit[0] =bin(0000 0000)}; 就占用了5B(4+1),A发消息,D已读消息时...比如C退出群,发消息时maxid还是5,已读+未读总人数应该是3(不包括发消息者本人),目前信息只有5个bit(0/1),识别不出来谁已经退出群聊了 退出群聊的成员如何处理?
- EvalHook 的 evaluate 方法返回值为空时打印 warning 信息
更有甚者,钉钉的群聊“强制已读回执”功能,甚至能够知道谁读了消息,谁没有读消息(老板的福音啊)。 ▲ 钉钉里的群聊消息已读未读功能效果 功能看起来很酷,但用起来是一言难尽(上班族心里苦.... )。...如果你对IM中的已读未读功能有产品方面的痛点困惑,可以参考一下微信对已读未读功能的设计定位,详见《IM热门功能思考:为什么微信里没有消息“已读”功能?》。...4.1 通知消息已读(私聊、群聊通用) 当小宝阅读了一条或若干条消息,需向服务端发送消息已读通知:“众爱卿发的x+y+z消息,朕已阅”。...服务端收到小宝的已读通知时,需完成以下事项: 1)存储消息的已读状态; 2)返回应答给小宝; 3)向已读列表的消息的原始发送者通知消息已读。...4.3 查询群消息的已读、未读人员清单(群聊) 当客户端希望显示某一条群聊消息的已读、未读人员列表,需向服务端发起查询。
领取专属 10元无门槛券
手把手带您无忧上云