im消息界面消息时间显示机制

本文介绍了IM即时通讯中消息时间显示的机制。当用户接收新消息时,如果相邻消息时间间隔大于5分钟,则显示时间戳。同时,在用户离开后再返回消息界面时,也会依据这个规则决定已存在消息的时间显示。此外,当新消息到达时,会根据时间间隔来决定是否显示该新消息的时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、新增消息时间显示
    1.定义:当用户处于消息界面,接受到新消息时,消息是否展示
    
    2.过程
        2.1收到第1条消息,此条消息展示时间(第一条消息一定展示时间,
                标记一个当前展示时间的指针index1 = time1;
                markNum = 1;
        2.2收到第2条消息,如果此消息时间 index2 = time2,
                if index2-index1 >=5 minues  then show time2 
                else markNum++; // don’t show;
        2.3 收到第3条消息,如果消息时间 index3 = time3,
                if index3-index2 >=5minues then show time3
                else markNum++; //don’t show
        2.4 ………..//依次类推,消息均未展示
        2.5 收到第20条消息 此时消息 index20 = time20;
                If index20-index19  >=5minues then show time20    //show
                else if markNum>=20 then show time20                //show
                else markNum++; //don’t show
        




二、 已有时间显示
    1.定义:用户处于消息界面以外状态,当点击到消息界面,已经存在的消息如何展示时间

    2.过程
        2.1 获取20条消息数据,
                第一条显示时间show time1
                第二条 if time2-time1>5分钟 then show time2 else don’t show
                第三条 if time3-time2>5分钟 then show time3 else don’t show
                第四条 if time4-time3>5分钟 then show time4 else don’t show
                。。。。。。
                第20条 if time20-time19>5分钟 then show time20 else don’t show
        2.2 当收到新消息
                newtime = timeN;
                markNum=0;//每次切换到消息帧,设置为0
                if  timeN-time(N-1) > 5分钟 show timeN else don’t show 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值