前提: 假如现在有2个模块需要提示消息:只要存在用户在上个时间点之后没有看过的信息就提示用户有新的信息 思路如下: 使用hash存储用户上次看过的时间,使用sortedset存储每个模块的每个信息产生的时间
ImageviewBound 带有角标的iamgeview,类似于qq、微信未读消息提示效果 1.引入方式 maven: com.hlq</groupId
一朋友和我讨论他前段时间面试某大公司的一题目: 企业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、退出群聊的成员如何处理?
前言 一款app,消息页面有:钱包通知、最近访客等各种通知类别,每个类别可能有新的通知消息,实现已读、未读功能,包括多少个未读,这个是怎么实现的呢?...所有,判断有没有小红点,或者小红点的数字是多少,就是简单的获取你与虚拟人的对话的未读的消息的数量。...当然,一个动作不一定只发一条消息,比如,图中下方有个金刚键"消息",它是所有消息的总和,所以,投递其他消息的时候,也要给它投递一次,不过它只展示一个未读数字,所以这个消息只需要一个msg_id即可,不需要消息..."已读和未读"。它包含两层意思,一个判否,即内容你是否读过,二是计数,即这个内容有多少人读过。 长尾原因 如果你用Redis存储,成本非常高,浪费非常严重。...这个时候,通常的策略是"[log record]"和"comb", 我们每产生一个动作,比如读,赞,收藏,就会产生一个log record( 取关,取消赞...也是一条独立的log record),我们由专门的大数据系统统一收集这些
packageNameParameter; context = contextParameter; mainActivityName = mainActivityNameParameter; } 2.设置未读数量
前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢。...之前在 《springboot + rabbitmq 做智能家居》 中说过可以用 rabbitmq 的 MQTT 协议做智能家居的指令推送,里边还提到过能用 MQTT 协议做 web 的消息推送,而未读消息...[交换机信息] 服务端消息发送 web 端实时消息推送一般都是单向的推送,前端接收服务端推送的消息显示即可,所以就只实现消息发送即可。...message=我是程序员内点事&topic=push_message_topic [模拟发送消息] 再看一下前端订阅消息的效果,看到消息被实时推送到了前端,这里只做了未读消息数量统计,一般还会做未读消息详情列表...[实时消息推送动图] 总结 未读消息是一个十分常见的功能,不管是 web端还是移动端系统都是必备的模块,MQTT 协议只是其中的一种实现方式,还是有必要掌握一种方法。
前几天粉丝群里有个小伙伴问过:web 页面的未读消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢。...之前在 《springboot + rabbitmq 做智能家居》 中说过可以用 rabbitmq 的 MQTT 协议做智能家居的指令推送,里边还提到过能用 MQTT 协议做 web 的消息推送,而未读消息...交换机信息 服务端消息发送 web 端实时消息推送一般都是单向的推送,前端接收服务端推送的消息显示即可,所以就只实现消息发送即可。...message=我是程序员内点事&topic=push_message_topic 模拟发送消息 再看一下前端订阅消息的效果,看到消息被实时推送到了前端,这里只做了未读消息数量统计,一般还会做未读消息详情列表...实时消息推送动图 总结 未读消息是一个十分常见的功能,不管是 web端还是移动端系统都是必备的模块,MQTT 协议只是其中的一种实现方式,还是有必要掌握一种方法。
小猿学习笔记 来源 | https://www.toutiao.com/i6686735232772604429 一朋友和我讨论他前段时间面试某大公司的一题目 : 企业IM比如企业微信、钉钉里面的群消息的有个已读未读的功能...,发送者刚发出消息时,当前群里其他群成员都是未读状态,陆陆续续有人看了这个消息,这时候消息的详情变成x人已读,y人未读,如下图所示,有具体的已读未读列表(万恶的功能,看到同事or老板的消息不能假装没看到了...),每条消息对应一个唯一的messageid(uint64_t),每个用户对应一个唯一的userid(uint64_t),应该如何保存这个消息对应的已读未读详情呢?...仔细分析,按照目前的设计,每一条消息,已读未读详情就要占用8B * 群成员数的内存,如果一个活跃的200人大群,每发一条消息,已读未读就要1600B,如果平均每天消息量是1k,那每个这样的群,每天就要1.6MB...比如C退出群,发消息时maxid还是5,已读+未读总人数应该是3(不包括发消息者本人),目前信息只有5个bit(0/1),识别不出来谁已经退出群聊了 退出群聊的成员如何处理?
作为开篇,这一次我们来给你的微信头像加上一条“未读消息”: ? 第一步就是准备好你食材,不对,是你的头像,我们拿下面的图来做实验: ? 还有不能忘了红色的圈圈logo: ?...把红色圈圈插入到微信头像上面,并且加上未读消息数字。...接下来就是在红色圈圈中写未读消息的数字了,我们使用draw.text函数来完成这个操作。单引号里面的数字就是你要填写的数字,这里我们设置成1。前面的(198,3)是数字写入的位置,也是可以自主调节的。
确认是否开启自动已读上报,Server默认删除未读消息,切换终端、杀进程和退出登录未读数会被清除,如果需要保留可以禁用已读上报disableAutoReport。...离线消息未读数统计是根据离线消息进行统计,而离线消息有容量限制,如果容量超过会删掉老的未读消息,平均存储100条消息左右,消息内容越多,存储的越少。...web端未读计数统计 ALL ON ONE 的原则,一开始登录的第一条最近联系人的会话是不显示未读计数的 群未读计数初始值 web端群消息未读计数初始是通过最近联系人接口返回 登录成功后收到的群消息未读计数做加一的处理...C2C未读计数初始值 web端的未读计数是先获取到最近联系人的所有会话,然后sdk里面会将getmsg里面返回的未读消息对应之前的会话来做加一处理用来统计未读消息数 统计之后的未读计数用webim.MsgStore.sessMap...()i.unread()去显示 登录之后的未读计数根据消息监听做加一处理 //初始化最近会话的消息未读数 function initUnreadMsgCount(){ var sess;
真丶深红骑士 读完需要 15 分钟 速读仅需7分钟 作者:真丶深红骑士 链接:https://juejin.im/post/5d12e22e6fb9a07ee5662d82 1 前言 用QQ的时候,发现未读消息拖拽效果蛮有意思
好久没写文章了,前段时间由于项目代码重构忙了一段时间,现在终于有点时间了就为大家带来一篇关于动画学习的自定义View:类似QQ消息拖拽的效果。...currentRadiusStart; private float currentRadiusEnd; private Rect textRect = new Rect(); //消息数...模拟器显示效果不是很好,真机效果很好看哦 我们可以继续完善一下,在圆中间添加数字实现消息效果 @Override protected void onDraw(Canvas canvas)...带数字消息的效果 追求完美的人看到这里肯定会说消失的时候少个动画,对,QQ上消失的时候有个气泡破裂的感觉,这个用几张不同状态的图,加上帧动画顺序播放就可以实现,由于我这没有图片资源就不演示这个了,帧动画的写法比属性动画简单多了哦...当用户触摸到view的时候把view从当前布局中移除,使用windowManage去addView(view)把我们的可拖拽View添加到window层,铺满屏幕,注意初始位置定位即可实现 2、在显示消息数的地方放置一个圆形的
离线用户 在线用户 在线用户且进入群组的用户 离线用户 这种场景就相当于我们退出微信,但是别人在房间里发的消息,当我们再次打开的时候依然能够看到房间增长的未读消息。...在线用户 这种场景就是相当我们停留在聊天列表页面,当他人在房间中发送消息,我们能够实时的看到未读消息的条数在增长。 场景示例。 ?...在线用户且在房间的用户 这种场景其实就比较普通了,当别人发送新的消息,我们就能实时看到,此时是不需要标记未读消息的。 场景示例。 ?...存储在Redis中的未读消息列表 C. 存储在MongoDB中的未读消息列表 用户1进入首页。 用户1进入房间,重置用户在房间1的未读消息,触发更新模块去更新B未读消息列表。...否,若用户不在房间中,更新其的未读消息计数 从缓存中获取用户的消息进行分发。 用户2登录我们的项目,从离线用户变成了在线用户。 用户2登录时,触发查询模块,去获取其当前在各个房间未读消息情况。
如果你对IM中的已读未读功能有产品方面的痛点困惑,可以参考一下微信对已读未读功能的设计定位,详见《IM热门功能思考:为什么微信里没有消息“已读”功能?》。...下面是大致的逻辑流程图: 4.2 查询消息的未读人数(私聊、群聊通用) 消息的发送者,加载消息列表到聊天窗口时,可能需要展示消息是否被已读。...对群聊而言,显示的信息可能是n人未读的提示,那么需要向服务端查询消息的未读人数,由于客户端可能在UI显示自己发出的多条消息,需支持一次请求查询多条消息。...就像下面这样: 1)对于私聊:如果未读人数n>0,表示消息未读; 2)对于群聊:直接显示n人未读即可,当然,当n等于0时表示全部已读。...4.3 查询群消息的已读、未读人员清单(群聊) 当客户端希望显示某一条群聊消息的已读、未读人员列表,需向服务端发起查询。
如题,想知道下,这个统计数(conversation.getUnreadMessageNum)是否累加了,如果没有的话,是否应该做出调整或提供给调用方手动累加方...
一般而言,消息提示,可以通过Toast方式,提醒给用户看,而通过Notification方式的话,可以在状态栏显示出来。...并且有声音,还有文字描述,并且可以出现在消息公告栏,这在QQ,飞信等常用即时通信软件中应用广泛。点击该在状态栏中的图标,就又可以回到原程序中。...如下所示: //声明通知(消息)管理器 NotificationManager m_NotificationManager; Intent m_Intent
实现消息提示组件 在浏览器页面中,通用的消息提示组件一般可以分为静态局部提示和动态全局提示,用于反馈用户需要关注的信息,使用频率较高。...实现 实现消息提示组件,动态全局提示,主要使用原生JavaScript实现,实现的代码基本都作了注释。 (function(win, doc){ const body = doc.body; // 容器 const msgList = []; // 维护消息数组队列
https证书是互联网传输中很重要的数字证书,为自己的网站申请https证书似乎成为了一件十分有必要的事情,https证书不仅仅可以很好地维护访问网站的用户信息...
领取专属 10元无门槛券
手把手带您无忧上云