[发明专利]消息续传方法和装置有效
申请号: | 201310610915.X | 申请日: | 2013-11-26 |
公开(公告)号: | CN104683288B | 公开(公告)日: | 2018-09-28 |
发明(设计)人: | 史业政 | 申请(专利权)人: | 腾讯科技(北京)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/58 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 杨春香;宋志强 |
地址: | 100080 北京市海淀区海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 方法 装置 | ||
1.一种消息续传方法,其特征在于,该方法应用于中转服务器,包括:
接收消息,并按照序列号递增原则为该消息分配序列号,将该消息、该消息对应的消息标识、以及该消息被分配的序列号保存至消息列表,其中,任意两个消息被分配的序列号不同;
接收消息订阅请求,所述消息订阅请求携带了发送该消息订阅请求的消息接收端的标识和状态以及该消息接收端需要订阅的消息对应的消息标识;
将所述消息订阅请求携带的消息标识、消息接收端的标识和状态存储至消息接收端列表中;
从消息接收端列表中选取消息标识、且状态为正常的消息接收端的标识;
从消息列表中找到与选取的消息标识对应的消息,依据选取的消息接收端的标识将该消息、以及该消息被分配的序列号一起发送至消息接收端,并将该序列号作为向该消息接收端发送的消息的序列号记录至消息接收端列表;
接收消息接收端发送的序列号,依据接收的序列号和消息接收端列表记录的向该消息接收端的标识发送的消息的序列号续传对应的消息至该消息接收端;
其中,所述消息接收端列表包括索引列表和数组列表;所述索引列表中包含多个索引块,所述数组列表中包含数组块;
所述将消息订阅请求携带的消息标识、消息接收端的标识和状态存储至消息接收端列表中包括:
依据消息订阅请求携带的消息标识,识别所述索引列表中是否存在已记录了该消息标识的索引块,如果是,从所述数组列表的首个数组块开始顺次遍历所述数组列表,将在所述数组列表中最先遍历到的空闲数组块的地址记录至该存在的索引块,如果否,从所述数组列表的首个数组块开始顺次遍历所述数组列表,将在所述数组列表中最先遍历到的空闲数组块的地址与该消息标识一起记录至所述索引列表中的空闲索引块;
在所述数组列表中最先遍历到的空闲数组块内记录该消息请求携带的消息接收端的标识和状态。
2.根据权利要求1所述的方法,其特征在于,所述消息对应的消息标识为:
对所述消息的类型进行哈希运算得到的结果。
3.根据权利要求1所述的方法,其特征在于,所述消息列表包括:一级索引列表、二级索引列表和数据列表;所述一级索引列表中包含多个一级索引块,所述二级索引列表中包含多个二级索引块,所述数据列表中包含多个数据块;
所述将消息、消息对应的消息标识、以及消息被分配的序列号保存至所述消息列表包括:
依据所述消息对应的消息标识识别所述一级索引列表中是否存在已记录了该消息标识的一级索引块,如果是,从所述二级索引列表的首个二级索引块开始顺次遍历所述二级索引列表,将在所述二级索引列表中最先遍历到的空闲二级索引块的地址记录至该存在的一级索引块,如果否,从所述二级索引列表的首个二级索引块开始顺次遍历所述二级索引列表,将在所述二级索引列表中最先遍历到的空闲二级索引块的地址、与该消息标识一起记录至所述一级索引列表中的空闲一级索引块;
从所述数据列表的首个数据块开始顺次遍历所述数据列表,将在所述数据列表中最先遍历到的空闲数据块的地址、以及该消息被分配的序列号记录至在所述二级索引列表中最先遍历到的空闲二级索引块;
在所述数据列表中最先遍历到的空闲数据块记录该消息。
4.根据权利要求3所述的方法,其特征在于,在所述数据列表中最先遍历到的空闲数据块记录该消息包括:
比较该消息的大小与最先遍历到的空闲数据块的大小;
如果前者小于或等于后者,则在所述数据列表中最先遍历到的空闲数据块记录该消息;
如果前者大于后者,则确定记录该消息需要使用的数据块数量N,从所述最先遍历到的空闲数据块开始使用所述数据列表中N个空闲数据块一起记录该消息;其中,在使用N块数据块记录消息时,每个数据块的尾部需要记录下个数据块的地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(北京)有限公司,未经腾讯科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310610915.X/1.html,转载请声明来源钻瓜专利网。