应用内轻量级推送方法

文档序号:7783166阅读:228来源:国知局
应用内轻量级推送方法
【专利摘要】本发明公开了一种应用内轻量级推送方法,该方法通过在服务器端设置时间戳来实现客户端周期性的发送连接请求,并且在服务器端和数据库采用时间标签的机制来记录数据发生更新的时间,通过时间的对比在服务器端的缓存表中只存放本次更新的数据,缓存表中的数据若是有同一个用户的不同类型的消息则通过打包机制把所有数据一次的推送到客户端,推送后的缓存表则清空,能够将更新的数据及时的推送到客户端显示给用户,而且能够在满足用户的需求的同时减少服务器端的数据处理开销和内存空间的开销。
【专利说明】应用内轻量级推送方法
【技术领域】
[0001]本发明属于无线通信【技术领域】,具体涉及一种应用内轻量级推送方法的设计。
【背景技术】
[0002]由于HTTP在每次请求结束后都会主动释放连接,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。现有技术的通常做法是即使不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
[0003]这个连接请求是由客户端主动发送的,但是客户端并不清楚服务器端什么时候有数据的更新,再者上述通常做法中客户端隔一段时间发连接请求,服务器端在没有连接的情况下,即使有数据的更新也不能及时的推送。

【发明内容】

[0004]本发明所要解决的技术问题是针对现有技术中服务器无法主动和客户端建立连接而导致的服务器数据推送不及时或者没有连接而造成无法推送的问题提出了一种应用内轻量级推送方法。
[0005]本发明解决其技术问题采用的技术方案是:应用内轻量级推送方法,具体包括:
[0006]步骤1、客户端向服务器发送HTTP连接请求和用户标识信息,服务器收到该请求后,启动在服务器端的时间戳开始倒计时,所述时间戳的时间长度为预设周期T,当时间戳倒计时剩余时间等于预设时间t时,服务器主动向客户端发送一个信号,客户端收到该信号后立即向服务器再次发送HTTP连接请求,建立连接;
[0007]步骤2、当所述步骤SI中客户端向服务器再次发送HTTP连接请求成功建立连接后,服务器处理收到的携带用户标识信息的消息,获得客户端该应用对应的用户标识信息;
[0008]如果所述用户标识信息对应的用户有数据的更新,服务器利用已建立的连接把更新的数据推送给相应的客户端用户,并且记录推送时间;如果没有数据的更新,服务器向相应的客户端用户发送一条空消息并记录发送时间,然后保持连接到有数据更新或者连接时间超时断开连接;
[0009]步骤3、客户端和服务器之间的连接断开时,与服务器对应的数据库将数据库中更新的数据放到服务器的缓存表中,在下次用户打开应用,客户端与服务器之间成功建立连接时,服务器把缓存表中的数据推送到客户端。
[0010]进一步的,所述客户端对应的每个应用都有一个应用表格,用于存放用户名和其对应的ID,如果客户端用户是第一次使用该应用,则需要注册获得一个ID,所述ID用于作为用户标识信息,并把ID号对应的用户名存放在该应用的应用表格中;如果不是第一次使用该应用,则在该应用的应用表格中存在该用户的用户名及其对应的ID号。[0011]进一步的,所述步骤2中,服务器向客户端推送的数据是根据上次推送时间进行的增量推送,具体为:服务器采用时间标签对数据库中的数据进行时间更新的记录,时间标签的更新随数据库中数据更新而更新,服务器将上一次推送数据的时间和数据库中数据的更新时间作对比,然后取出数据库中更新的信息推送到客户端并记录本次推送数据的时间。
[0012]进一步的,所述服务器端采用缓存表来存放不同用户对应的不同类型的所有更新信息,所述缓存表中包括消息类型和本类型消息的推送时间,并且在数据库中存在对应的更新表,所述更新表中包括消息类型和消息更新时间。
[0013]更进一步的,在服务器推送完数据后,服务器将自动检测缓存表中的数据是否有新的更新数据没有推送,如果所有数据都已经推送,则清除缓存表中的数据,否则把缓存表中的数据全部推送后清除缓存表。
[0014]本发明的有益效果是:本发明一种应用内轻量级推送方法通过在服务器端设置时间戳来实现客户端周期性的发送连接请求,避免了数据更新不及时和无法推送数据;并且在服务器端和数据库采用时间标签的机制,通过时间的对比在服务器端的缓存表中只存放本次更新的数据,缓存表中的数据若是有同一个用户的不同类型的消息则通过打包机制把所有数据一次的推送到客户端,推送后的缓存表则清空,能够将更新的数据及时的推送到客户端,显示给用户,而且能够在满足用户的需求的同时减少服务器端的数据处理开销和内存空间的开销。
【专利附图】

【附图说明】
[0015]图1所示为本发明【具体实施方式】的应用内轻量级推送方法的流程框图;
[0016]图2所示为本发明【具体实施方式】具体事例的流程框图。
【具体实施方式】
[0017]下面结合附图和具体的实施例对本发明作进一步的阐述。
[0018]如图1所示为本发明实施方式的应用内轻量级推送方法的流程框图,其具体包括:
[0019]步骤1、客户端向服务器发送HTTP连接请求和用户标识信息,服务器收到该请求后,启动在服务器端的时间戳开始倒计时,所述时间戳的时间长度为预设周期T,当时间戳倒计时剩余时间等于预设时间t时,服务器主动向客户端发送一个信号,客户端收到该信号后立即向服务器再次发送HTTP连接请求,建立连接;
[0020]所述步骤I具体为,首先客户端与服务器之间周期性建立HTTP连接,所述周期性可根据具体的环境、用户的需求等条件确定,所述周期可以预设为T,当用户打开并登录到客户端的应用,如果是第一次使用该应用,则需要注册获得一个ID,所述ID用于作为用户标识信息,并把ID号对应的用户名存放在该应用的应用表格中,应用表格包括用户名和其对应的ID号,用户在该应用注册获得ID号后,系统根据一定的规则把用户名和对应的ID号放到应用中的表格;如果不是第一次使用该应用,则在应用的表格会有用户名及其对应的ID号的记录。客户端获取用户信息后,向服务器发送HTTP连接请求和用户标识等信息,服务器收到该请求后,启动在服务器端的时间戳开始倒计时,所述时间戳的时间长度为预设周期T,当时间戳倒计时剩余时间等于预设时间t时,该t可以设为几秒,具体值可以根据不同需求进行设定,服务器主动向客户端发送一个信号,客户端收到该信号后立即向服务器端再次发送HTTP连接请求,建立连接。
[0021]步骤2、当所述步骤SI中客户端向服务器再次发送HTTP连接请求成功建立连接后,服务器处理收到的携带用户标识信息的消息,获得客户端该应用对应的用户标识信息;
[0022]如果所述用户标识信息对应的用户有数据的更新,服务器利用已建立的连接把更新的数据推送给相应的客户端用户,并且记录推送时间;如果没有数据的更新,服务器向相应的客户端用户发送一条空消息并记录发送时间,然后保持连接到有数据更新或者连接时间超时断开连接。
[0023]其中,服务器向客户端推送的数据是根据上次推送时间进行的增量推送,具体为:服务器采用时间标签对数据库中的数据进行时间更新的记录,时间标签的更新随数据库中数据发生更新而更新,服务器将上一次推送数据的时间和数据库中数据的更新时间作对t匕,然后取出数据库中更新的信息推送到客户端并记录本次推送数据的时间。
[0024]所述服务器端采用缓存表来存放不同用户对应的不同类型的所有更新信息,所述缓存表中包括消息类型和本类型消息的推送时间,并且在数据库中存在对应的更新表,所述更新表中包括消息类型和消息更新时间;其中缓存表和更新表之间的消息类型是对应的,随着数据的不断更新,更新表中消息更新时间会对应发生更新,同样,缓存表中的推送时间也会不断的更新。对于同一个用户来说,缓存表中如果有更新的不同类型的消息或者是不止一条同一类型的消息的数据,服务器则把缓存表中的所有数据打包一起发送到对应的客户端用户,客户端收到打包的消息后,通过解压机制把不同类型的消息提取出来。
[0025]在每次服务器推送完数据后,服务器会自动检测缓存表中的数据是否有新的更新数据没有推送,如果所有数据都已经推送则清除缓存表中的数据,否则把缓存表中的数据全部推送后清除缓存表以节约服务器的开销和空间。
[0026]步骤3、客户端和服务器之间的连接断开时,与服务器对应的数据库将数据库中更新的数据放到服务器的缓存表中,在下次用户打开应用,客户端与服务器之间成功建立连接时,服务器把缓存表中的数据推送到客户端,从而实现应用内轻量级的推送。
[0027]为了本领域技术人员能够理解并且实施本发明技术方案,下面通过一个具体的实施例子对本发明应用内轻量级推送方法做进一步的阐述。
[0028]如图2所示为本发明实施例的具体流程框图,用户张三使用应用A:用户张三是第一次使用这个应用A,需要注册获得一个ID号,这个ID号是唯一的,用户张三注册后获得ID号为03,把用户张三和其ID —起加入到应用A的应用表格中,其中03就是用户张三在使用应用A的用户标识。如果不是第一次使用则在应用A的表中会有用户ID的记录。如表1所示,在应用A的应用表格中就有用户李四,用户王五的相关记录。
[0029]表1-应用A的应用表格
[0030]
【权利要求】
1.应用内轻量级推送方法,其特征在于,具体包括: 步骤1、客户端向服务器发送HTTP连接请求和用户标识信息,服务器收到该请求后,启动在服务器端的时间戳开始倒计时,所述时间戳的时间长度为预设周期T,当时间戳倒计时剩余时间等于预设时间t时,服务器主动向客户端发送一个信号,客户端收到该信号后立即向服务器再次发送HTTP连接请求,建立连接; 步骤2、当所述步骤SI中客户端向服务器再次发送HTTP连接请求成功建立连接后,月艮务器处理收到的携带用户标识信息的消息,获得客户端该应用对应的用户标识信息; 如果所述用户标识信息对应的用户有数据的更新,服务器利用已建立的连接把更新的数据推送给相应的客户端用户,并且记录推送时间;如果没有数据的更新,服务器向相应的客户端用户发送一条空消息并记录发送时间,然后保持连接到有数据更新或者连接时间超时断开连接; 步骤3、客户端和服务器之间的连接断开时,与服务器对应的数据库将数据库中更新的数据放到服务器的缓存表中,在下次用户打开应用,客户端与服务器之间成功建立连接时,服务器把缓存表中的数据推送到客户端。
2.如权利要求1所述的方法,其特征在于,所述客户端对应的每个应用都有一个应用表格,用于存放用户名和其对应的ID,如果客户端用户是第一次使用该应用,则需要注册获得一个ID,所述ID用于作为用户标识信息,并把ID号对应的用户名存放在该应用的应用表格中;如果不是第一次使用该应用,则在该应用的应用表格中存在该用户的用户名及其对应的ID号。
3.如权利要求1所述的方法,其特征在于,所述步骤2中,服务器向客户端推送的数据是根据上次推送时间进行的增量推送,具体为:服务器采用时间标签对数据库中的数据进行时间更新的记录,时间标签的更新随数据库中数据更新而更新,服务器将上一次推送数据的时间和数据库中数据的更新时间作对比,然后取出数据库中更新的信息推送到客户端并记录本次推送数据的时间。
4.如权利要求1所述的方法,其特征在于,所述服务器端采用缓存表来存放不同用户对应的不同类型的所有更新信息,所述缓存表中包括消息类型和本类型消息的推送时间,并且在数据库中存在对应的更新表,所述更新表中包括消息类型和消息更新时间。
5.如权利要求4所述的方法,其特征在于,在服务器推送完数据后,服务器将自动检测缓存表中的数据是否有新的更新数据没有推送,如果所有数据都已经推送,则清除缓存表中的数据,否则把缓存表中的数据全部推送后清除缓存表。
【文档编号】H04L29/06GK103780603SQ201310750165
【公开日】2014年5月7日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】李龙江, 刘社平, 李永刚 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1