首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按用户获取未读消息

在聊天应用中,按用户获取未读消息是一个常见的需求。为了实现这个功能,可以使用消息数据库来存储每个用户的消息状态。以下是一个简单的步骤来实现这个功能:

  1. 用户登录后,从服务器获取未读消息列表。
  2. 用户阅读消息后,将消息状态更新为已读。
  3. 用户注销后,将所有消息状态更新为未读。

在实现这个功能时,可以使用以下技术:

  1. 数据库:可以使用关系型数据库或者非关系型数据库来存储消息数据。
  2. 服务器:可以使用云计算服务器或者本地服务器来承载应用程序。
  3. 应用程序:可以使用Web应用程序或者移动应用程序来提供聊天服务。

推荐的腾讯云相关产品和产品介绍链接地址:

  1. 云数据库:https://cloud.tencent.com/product/cdb
  2. 云服务器:https://cloud.tencent.com/product/cvm
  3. 移动应用程序:https://cloud.tencent.com/product/tbaas

希望这个答案能够帮助你解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

群聊消息“已”“” 功能解决方案!

一朋友和我讨论他前段时间面试某大公司的一题目: 企业IM比如企业微信、钉钉里面的群消息的有个已的功能,发送者刚发出消息时,当前群里其他群成员都是状态,陆陆续续有人看了这个消息,这时候消息的详情变成...x人已,y人,如下图所示,有具体的已列表(万恶的功能,看到同事or老板的消息不能假装没看到了),每条消息对应一个唯一的messageid(uint64_t),每个用户对应一个唯一的userid...(uint64_t),应该如何保存这个消息对应的已详情呢?...仔细分析,按照目前的设计,每一条消息,已详情就要占用8B * 群成员数的内存,如果一个活跃的200人大群,每发一条消息,已就要1600B,如果平均每天消息量是1k,那每个这样的群,每天就要1.6MB...磁盘空间,对于客户端来说,特别是手机端,占用磁盘空间是用户不能接受的,又不能把工作消息删了,对于服务器端来说,用户群体如果特别大,那数据库存储这个成本也不小。

3.1K10

面试题:群聊消息的已设计

一朋友和我讨论他前段时间面试某大公司的一题目 : 企业IM比如企业微信、钉钉里面的群消息的有个已的功能,发送者刚发出消息时,当前群里其他群成员都是状态,陆陆续续有人看了这个消息,这时候消息的详情变成...x人已,y人,如下图所示,有具体的已列表(万恶的功能,看到同事or老板的消息不能假装没看到了),每条消息对应一个唯一的messageid(uint64_t),每个用户对应一个唯一的userid...(uint64_t),应该如何保存这个消息对应的已详情呢?...仔细分析,按照目前的设计,每一条消息,已详情就要占用8B * 群成员数的内存,如果一个活跃的200人大群,每发一条消息,已就要1600B,如果平均每天消息量是1k,那每个这样的群,每天就要1.6MB...磁盘空间,对于客户端来说,特别是手机端,占用磁盘空间是用户不能接受的,又不能把工作消息删了,对于服务器端来说,用户群体如果特别大,那数据库存储这个成本也不小 其实就是一个0/1的标记而已,可以维护一个

1.9K41

钉钉消息咋实现的嘞?

前言 一款app,消息页面有:钱包通知、最近访客等各种通知类别,每个类别可能有新的通知消息,实现已功能,包括多少个,这个是怎么实现的呢?...比如用户A访问了用户B的主页,难道用rabitmq给B发通知消息吗?量大了成本受得了吗?...所有,判断有没有小红点,或者小红点的数字是多少,就是简单的获取你与虚拟人的对话的消息的数量。...当然,一个动作不一定只发一条消息,比如,图中下方有个金刚键"消息",它是所有消息的总和,所以,投递其他消息的时候,也要给它投递一次,不过它只展示一个读数字,所以这个消息只需要一个msg_id即可,不需要消息..."已"。它包含两层意思,一个判否,即内容你是否读过,二是计数,即这个内容有多少人读过。 长尾原因 如果你用Redis存储,成本非常高,浪费非常严重。

41310

消息(小红点),前端 与 RabbitMQ 实时消息推送实践,贼简单~

前几天粉丝群里有个小伙伴问过:web 页面的消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢。...之前在 《springboot + rabbitmq 做智能家居》 中说过可以用 rabbitmq 的 MQTT 协议做智能家居的指令推送,里边还提到过能用 MQTT 协议做 web 的消息推送,而消息...交换机信息 服务端消息发送 web 端实时消息推送一般都是单向的推送,前端接收服务端推送的消息显示即可,所以就只实现消息发送即可。...message=我是程序员内点事&topic=push_message_topic 模拟发送消息 再看一下前端订阅消息的效果,看到消息被实时推送到了前端,这里只做了消息数量统计,一般还会做消息详情列表...实时消息推送动图 总结 消息是一个十分常见的功能,不管是 web端还是移动端系统都是必备的模块,MQTT 协议只是其中的一种实现方式,还是有必要掌握一种方法。

2K10

消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~

前几天粉丝群里有个小伙伴问过:web 页面的消息(小红点)怎么实现比较简单,刚好本周手头有类似的开发任务,索性就整理出来供小伙伴们参考,没准哪天就能用得上呢。...之前在 《springboot + rabbitmq 做智能家居》 中说过可以用 rabbitmq 的 MQTT 协议做智能家居的指令推送,里边还提到过能用 MQTT 协议做 web 的消息推送,而消息...[交换机信息] 服务端消息发送 web 端实时消息推送一般都是单向的推送,前端接收服务端推送的消息显示即可,所以就只实现消息发送即可。...message=我是程序员内点事&topic=push_message_topic [模拟发送消息] 再看一下前端订阅消息的效果,看到消息被实时推送到了前端,这里只做了消息数量统计,一般还会做消息详情列表...[实时消息推送动图] 总结 消息是一个十分常见的功能,不管是 web端还是移动端系统都是必备的模块,MQTT 协议只是其中的一种实现方式,还是有必要掌握一种方法。

2.8K109

面试官:群聊消息的已功能,你来设计一个?

,发送者刚发出消息时,当前群里其他群成员都是状态,陆陆续续有人看了这个消息,这时候消息的详情变成x人已,y人,如下图所示,有具体的已列表(万恶的功能,看到同事or老板的消息不能假装没看到了...),每条消息对应一个唯一的messageid(uint64_t),每个用户对应一个唯一的userid(uint64_t),应该如何保存这个消息对应的已详情呢?...仔细分析,按照目前的设计,每一条消息,已详情就要占用8B * 群成员数的内存,如果一个活跃的200人大群,每发一条消息,已就要1600B,如果平均每天消息量是1k,那每个这样的群,每天就要1.6MB...磁盘空间,对于客户端来说,特别是手机端,占用磁盘空间是用户不能接受的,又不能把工作消息删了,对于服务器端来说,用户群体如果特别大,那数据库存储这个成本也不小 其实就是一个0/1的标记而已,可以维护一个...比如C退出群,发消息时maxid还是5,已+总人数应该是3(不包括发消息者本人),目前信息只有5个bit(0/1),识别不出来谁已经退出群聊了 退出群聊的成员如何处理?

1.5K40

公众号开发:获取用户消息和回复消息

,发送「天气」的消息,你可以回复当前的天气状况;还可以进行素材的管理,用户的管理等等。...今天先来实现下最简单的获取关注者发送的消息,并给他回复同样的消息,支持文本消息,图片和语音。后续再解锁其他的姿势。 先来看看最终效果: ?...城市为:{}", openId, nickname, city); } catch (WxErrorException e) { logger.error("获取用户消息失败...接收用户发送的消息 当微信用户向公众号发送消息时,微信服务器会通过公众号后台配置的URL把信息发送到我们后台的接口上,注意此时的请求格式为 POST请求,发送过来的消息报文格式是XML格式的,每种消息类型的...,如amr,speex等 MediaId 语音消息媒体id,可以调用获取临时素材接口拉取数据 回复用户消息用户发送消息给公众号时,会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML

5.1K30

史上最详细仿QQ消息拖拽粘性效果的实现

好久没写文章了,前段时间由于项目代码重构忙了一段时间,现在终于有点时间了就为大家带来一篇关于动画学习的自定义View:类似QQ消息拖拽的效果。...最终效果 我来分析一下我对这个实现过程的理解:首先是在指定某个位置画一个圆出来,手指到这个圆的时候再绘制一个可以根据手指位置移动的圆,随着手指的移动两个圆逐渐分离,分离的过程中两圆中间出现连接带,随着两圆圆心距的增大...3、处理onTouchEvent事件 3.1、处理ACTION_DOWN事件 手指下的时候我们要判断手指所在位置是不是在起点圆上,只有到起点圆上之后拖拽才有效,还记得我们文章开始的时候定义的变量mIsCanDrag...我这篇文章只是起到抛砖引玉的作用,只是带领大家一步一步实现了拖拽效果,具体要怎么在项目中使用呐,大家可以根据自己的需求编写即可,网上也有几种实现方式我在此简单列出来 1、固定自定义view大小为圆的大小,显示在需要的位置,当用户触摸到...textView,当做初始圆,下的时候让其隐藏,把我们的view添加到Window层做相应的拖拽 我总结了一下大概有这两种方法可行,当然你有更好的方法和思路欢迎大家在下边评论,说出你的实现方式,让大家受益

79420

消息之点不完的小红点(Node+Websocket)

在线用户且在房间的用户 这种场景其实就比较普通了,当别人发送新的消息,我们就能实时看到,此时是不需要标记消息的。 场景示例。 ?...存储在Node缓存中的房间用户列表(此处信息也可以存在Redis中) B. 存储在Redis中的消息列表 C. 存储在MongoDB中的消息列表 用户1进入首页。...用户1进入房间,重置用户在房间1的消息,触发更新模块去更新B消息列表。 用户1向向房间B中发送了一条消息。 后端需要去获取房间用户列表,判断用户是否在房间?...是,因为在房间中的用户已经读取了最新消息,不需要进行计数。 否,若用户不在房间中,更新其的消息计数 从缓存中获取用户消息进行分发。 用户2登录我们的项目,从离线用户变成了在线用户。...用户2登录时,触发查询模块,去获取其当前在各个房间消息情况。 查询模块去查询Redis中的消息,若Redis中没有数据,会继续向数据库中查询,若没有则返回0给用户

2.2K30

IM群聊消息的已功能在存储空间方面的实现思路探讨

对群聊而言,显示的信息可能是n人的提示,那么需要向服务端查询消息人数,由于客户端可能在UI显示自己发出的多条消息,需支持一次请求查询多条消息。...就像下面这样: 1)对于私聊:如果人数n>0,表示消息; 2)对于群聊:直接显示n人即可,当然,当n等于0时表示全部已。...4.3 查询群消息的已人员清单(群聊) 当客户端希望显示某一条群聊消息的已人员列表,需向服务端发起查询。...客户端获取消息的数据: 1)当需要获取人数时,用receiver_list的个数减去read_list的个数; 2)当需要获取人员列表时,需用receiver_list减去read_list...客户端获取消息的数据: 1)当需要获取人数时,直接计算unread_list的个数; 2)当需要获取人员列表时,直接返回unread_list和read_list。

5.5K50

快速返回朋友圈顶部 快速查看消息【微信5.4贴心升级】

新版微信增强了搜索、面对面转账等功能,首次适配ipad,还做出了一些贴心的升级,比如快速返回朋友圈顶部,快速查看消息。   ...朋友圈内容挺多的,翻了好长时间才算看完…但现在又想看看最新的消息,肿么办?又要动用我“金贵”的右手食指使劲向下滑动界面吗?...在微信5.4版就有一个新功能:用户在主界面、朋友圈连续向上滑动列表时,用手点击屏幕顶端的状态栏,朋友圈和列表就会自动滚动到最新的消息界面啦!有木有很方便!赶紧试试吧~ ?   ...对于那些活跃的小伙伴们来说,刷屏是他们的代名词,你出去一会回来就发现微信群已堆积了成百条的消息。亦或是,这边还在跟A客户聊天,那边的公司群已经开始消息“轰炸”了。...在微信5.4版本中,轻松点击界面右上角的消息通知,即可方便的跳转到第一条聊天消息了,方便你第一时间处理最紧要的事情。 ?

99050

Node + WebSocket + Vue 一对一、一对多聊天室消息 – 第四章

服务端就在发送消息的地方增加一个字段,status:1来表示。 WebSocket客户端 由UI界面的代码可以看出,我们调用了一个getMsgNum方法来展示消息数量。...所以我们客户端只需要在原来的基础上,添加一个获取消息数量的方法即可。 export default { ......1、参数user没有值时,表示是获取消息,判断messageList里面的没有bridge(即是群聊消息),并且status为1(即) 2、如果有user时,获取对应用户消息,判断messageList...里面的有bridge(即是用户对话消息)、uid相等,并且status为1(即) 3、打开的是当前对话,即将当前对话的消息状态status改为0(已) data.map(item=>{ item.status...总结 消息,主要是判断状态,然后搞清楚对象,是谁发的消息没有。已,就很简单了,就是当前展示的消息列表都改成已,所以直接把currentMessage列表的消息改成已即可。

1.7K30

这里有一份史上最详细仿QQ消息拖拽粘性效果的实现,快来收藏!

原文链接:https://www.jianshu.com/p/ed2721286778 今天为大家带来一篇关于动画学习的自定义View:类似QQ消息拖拽的效果。...我来分析一下我对这个实现过程的理解:首先是在指定某个位置画一个圆出来,手指到这个圆的时候再绘制一个可以根据手指位置移动的圆,随着手指的移动两个圆逐渐分离,分离的过程中两圆中间出现连接带,随着两圆圆心距的增大...3、处理onTouchEvent事件 3.1、处理ACTION_DOWN事件 手指下的时候我们要判断手指所在位置是不是在起点圆上,只有到起点圆上之后拖拽才有效,还记得我们文章开始的时候定义的变量mIsCanDrag...我这篇文章只是起到抛砖引玉的作用,只是带领大家一步一步实现了拖拽效果,具体要怎么在项目中使用呐,大家可以根据自己的需求编写即可,网上也有几种实现方式我在此简单列出来 1、固定自定义view大小为圆的大小,显示在需要的位置,当用户触摸到...textView,当做初始圆,下的时候让其隐藏,把我们的view添加到Window层做相应的拖拽

63510

3 个微信「黑暗功能」:快速定位消息 给非好友设备注 电脑登录后关闭手机微信 | 晓技巧

快速定位到消息 这个技巧简直是去小红点利器,强迫症福音!只需在微信底栏双击「微信」即可快速定位到最近消息,再双击则定位到下一条。...值得一提的是,这个小技巧对于设置了「消息免打扰」(不带数字的小红点)的消息是没有用的哦! 2. 设置备注及描述 相信大家都会给好友设置备注,但你知道非好友也可以设置备注吗?...以「知晓程序核心读者群」的迢迢同学为例,在群成员中选择查看资料并进行设置: 很多用户会忽视「描述」,但知晓君认为这是十分有用的功能,因为「描述」限制字数为 200,而「备注名」的限制字数仅为 16。...相关阅读 / 晓技巧 微信可发送定时消息,朋友圈打通明星点赞功能? | 晓技巧

2K20
领券