[发明专利]消息存储方法及装置有效
申请号: | 201710203458.0 | 申请日: | 2017-03-30 |
公开(公告)号: | CN108509281B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 李淼;石鹏 | 申请(专利权)人: | 北京云中融信网络科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 江崇玉 |
地址: | 100081 北京市海淀区万*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 存储 方法 装置 | ||
1.一种消息存储方法,其特征在于,适用于直播聊天室,所述方法包括:
当接收到待存储消息时,从私有内存中获取最晚存储的消息在消息容器中的第一位置标识,并从主内存中获取最晚存储的消息在消息容器中的第一预期位置标识,所述消息容器中的消息采用环形队列方式进行存储,所述环形队列中存储位置的数量与消息容器所能存储的消息数量相同,所述消息容器为内存中用于存储直播聊天室消息的数据结构;
判断所述第一位置标识与所述第一预期位置标识是否相同;
如果所述第一位置标识与所述第一预期位置标识相同,则将第二位置标识确定为所述待存储消息在所述消息容器中的位置标识,所述第二位置标识由所述第一位置标识和预设步长确定;
根据所述第二位置标识,将待存储消息存储到所述消息容器中;
如果所述第一位置标识与所述第一预期位置标识不相同,则将所述私有内存中的所述第一位置标识更新为所述第一预期位置标识,并从所述主内存中获取最晚存储的消息在消息容器中的第二预期位置标识;
判断所述第一预期位置标识与所述第二预期位置标识是否相同;
如果所述第一预期位置标识与所述第二预期位置标识相同,则根据第三位置标识,将所述待存储消息存储到所述消息容器中,所述第三位置标识由所述第一预期位置标识和所述预设步长确定;
如果所述第一预期位置标识与所述第二预期位置标识不相同,则继续根据所述主内存中的预期位置标识对所述私有内存中的位置标识进行更新,直至从所述私有内存中获取到的目标位置标识与从所述主内存中获取到的预期位置标识相同,并根据第四位置标识,将所述待存储消息存储到所述消息容器中,所述第四位置标识由所述目标位置标识和所述预设步长确定。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二位置标识,将待存储消息存储到所述消息容器中,包括:
如果所述第二位置标识小于等于预设标识,则将所述待存储消息存储到所述消息容器中所述第二位置标识对应的位置上,所述预设标识为所述消息容器所能存储的消息的最大位置标识;
如果所述第二位置标识大于所述预设标识,且与所述预设标识之间的差值等于所述预设步长,则为所述消息容器添加写锁,并将所述待存储消息存储到所述消息容器中起始位置标识对应的位置上。
3.根据权利要求1至2中任一项所述的方法,其特征在于,所述方法还包括:
接收终端发送的消息同步请求,所述消息同步请求包括已接收消息的最晚接收时间;
根据所述最晚接收时间,从所述消息容器中获取待同步消息;
将所述待同步消息发送至所述终端,由所述终端进行显示。
4.根据权利要求3所述的方法,其特征在于,所述根据所述最晚接收时间,从所述消息容器中获取所述待同步消息,包括:
确定所述最晚接收时间在所述消息容器中对应的第五位置标识;
从所述主内存中获取最晚存储的消息在所述消息容器中的第六位置标识;
通过每次将所述第六位置标识减小所述预设步长,对所述消息容器进行遍历,直至满足遍历截止条件,所述遍历截止条件为获取到的消息数量达到所述消息容器所能存储的最大值或遍历得到的位置标识等于所述第五位置标识;
将遍历得到的全部消息作为所述待同步消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京云中融信网络科技有限公司,未经北京云中融信网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710203458.0/1.html,转载请声明来源钻瓜专利网。