瘦ap处理事件通知消息的方法以及瘦ap装置的制造方法

文档序号:10691901阅读:242来源:国知局
瘦ap处理事件通知消息的方法以及瘦ap装置的制造方法
【专利摘要】本发明公开了一种瘦AP处理事件通知消息的方法以及瘦AP装置,其中,所述瘦AP处理事件通知消息的方法包括:建立第一链表和第二链表;将接收到的AP事件消息存储在所述第一链表中;将所述第一链表中的AP事件消息上报服务器,同时将所述第一链表的链路状态置为忙碌状态,直至收到所述服务器的回复,再将所述第一链表的链路状态置为空闲状态;当所述第一链表的链路状态为忙碌状态时,将接收到的AP事件消息存储在所述第二链表中;当所述第一链表的链路状态为空闲状态时,将所述第二链表中的AP事件消息上报所述服务器。本发明提供的瘦AP处理事件通知消息的方法以及瘦AP装置解决瘦AP在接受多事件通知消息时,事件信息丢失或者上报不成功的问题。
【专利说明】
瘦AP处理事件通知消息的方法以及瘦AP装置
技术领域
[0001]本发明涉及无线通讯领域,尤其涉及一种瘦AP处理事件通知消息的方法以及瘦AP
目.ο
【背景技术】
[0002]瘦AP(ACCeSS Point无线接入点)主要是通过远程服务器下发配置进行工作,主要包括无线配置、SSID的配置、终端管理等等。AP会接收到用户发送的事件通知消息,比如用户接入、用户离开、上报泛洪告警、泛洪清除、上报附近无线终端、附近无线设备、负载均衡等。瘦AP接收到事件通知消息后会上报到远程服务器,以便于远程服务器对AP以及接入AP的终端进行管理操作。在正常情况下,瘦AP可以将收到的事件通知消息成功的上报给远程服务器,但是在多并发的情况下会出现事件通知消息丢失的现象,或者在同一时刻,有大量用户接入的时候,会有部分用户的事件通知消息上报不成功。

【发明内容】

[0003]本发明所要解决的技术问题是现有的瘦AP在多并发的情况下会出现事件通知消息丢失的现象,或者在同一时刻,有大量用户接入的时候,会有部分用户的事件通知消息上报不成功的问题。
[0004]为了解决上述问题,本发明提供了一种瘦AP处理事件通知消息的方法,包括:
[0005]建立第一链表和第二链表;
[0006]将接收到的AP事件消息存储在所述第一链表中;
[0007]将所述第一链表中的AP事件消息上报服务器,同时将所述第一链表的链路状态置为忙碌状态,直至收到所述服务器的回复,再将所述第一链表的链路状态置为空闲状态;
[0008]当所述第一链表的链路状态为忙碌状态时,将接收到的AP事件消息存储在所述第二链表中;
[0009]当所述第一链表的链路状态为空闲状态时,将所述第二链表中的AP事件消息上报所述服务器。
[0010]可选的,所述将所述第二链表中的AP事件消息上报所述服务器的步骤之前,还包括检查所述第二链表中是否有未发送的AP事件消息的步骤,若有未发送的AP事件,则将所述第二链表中的未发送的AP事件上报至所述服务器。
[0011 ]可选的,还包括:当所述第一链表的链路状态为空闲状态时,接受AP事件消息。
[0012]可选的,将AP事件消息存储在所述第一链表或所述第二链表中的方法包括:将每件AP事件消息对应建立一个事件链表,并将AP事件消息的相关信息存在对应的事件链表中;在所述第一链表或者第二链表中建立存储到的AP事件对应的链表节点。
[0013]可选的,将所述第一链表中的AP事件消息上报服务器或者将所述第二链表中的AP事件消息上报所述服务器的步骤包括:遍历所述第一链表或者第二链表中的事件链表节点,将每个事件链表中存储的值取出;删除已取出值的所述事件链表节点。
[0014]另外,本发明还提供了一种瘦AP装置,包括:
[0015]链表存储单元,包括第一链表单元和第二链表单元;
[0016]接收单元,适于将接收到的AP事件消息存储在所述第一链表单元中;
[0017]发送单元,适于将所述第一链表单元中的AP事件消息上报服务器;
[0018]控制单元,适于在所述发送单元将所述第一链表单元中的AP事件消息上报服务器时,将所述第一链表单元的链路状态置为忙碌状态,直至所述接收单元收到所述服务器的回复,再将所述第一链表单元的链路状态置为空闲状态;
[0019]当所述第一链表单元的链路状态为忙碌状态时,所述发送单元适于将所述接收单元接收到的AP事件消息存储在所述第二链表单元中;
[0020]当所述第一链表单元的链路状态为空闲状态时,所述发送单元适于将所述第二链表单元中的AP事件消息上报所述服务器。
[0021 ]可选的,还包括:检测单元,适于在所述控制单元将所述第二链表单元中的AP事件消息上报所述服务器之前,检查所述第二链表单元中是否有未发送的AP事件消息的步骤,若有未发送的AP事件消息,所述发送单元适于将所述第二链表单元中的未发送的AP事件消息上报至所述服务器。
[0022]可选的,所述接收单元还适于当所述第一链表单元的链路状态为空闲状态时,接受AP事件消息。
[0023]可选的,所述存储单元还包括:事件链表单元,适于对应所述AP事件消息以存储相关信息;在所述第一链表单元或者第二链表单元中建立所存储的AP事件对应的事件链表节点。
[0024]可选的,所述发送单元还包括:浏览模块和删除模块,所述浏览模块适于在将所述第一链表单元或者将所述第二链表单元中的AP事件消息上报所述服务器时:遍历所述第一链表单元或者第二链表单元中的事件链表节点,将每个事件链表单元中存储的值取出;所述删除模块适于在所述浏览模块遍历所述事件链表节点时,并删除已取出值的所述事件链表节点。
[0025]与现有技术相比,本发明的技术方案具有以下优点:
[0026](I)在同一时刻有大量的用户终端接入AP的时候,可以保证用户终端正常工作。
[0027](2)AP在收到远程服务器的回复报文之后,再检查一次是否有未发送的事件,这样既能保证把所有的事件上报到远程服务器,又可以减少远程服务器的压力。
【附图说明】
[0028]图1是本发明提供的瘦AP处理事件通知消息的方法的示意图。
【具体实施方式】
[0029]在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。
[0030]其次,本发明利用示意图进行详细描述,在详述本发明实施例时,为便于说明,所述示意图只是实例,其在此不应限制本发明保护的范围。
[0031]图1是本发明提供的瘦AP处理事件通知消息的方法的示意图。以下结合图1具体描述本发明的实施情况。
[0032]为了解决【背景技术】中的技术问题,本发明提供了一种瘦AP处理事件通知消息的方法,包括:
[0033]执行步骤SlOO:建立第一链表和第二链表;
[0034]其中,所述第一链表和第二链表为是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。使用链表可以可以充分利用计算机内存空间,实现灵活的内存动态管理。
[0035]执行步骤S200:将接收到的AP事件消息存储在所述第一链表中;
[0036]瘦AP(ACCeSS Point无线接入点)主要是通过远程服务器下发配置进行工作,主要包括无线配置、SSID的配置、终端管理等等。AP会接收到用户发送的事件通知消息,比如用户接入、用户离开、上报泛洪告警、泛洪清除、上报附近无线终端、附近无线设备、负载均衡等。
[0037]当有多个事件同时到达的时候,或者在同一时刻有大量用户接入的时候,本步骤中,先将这些需要上报的事件临时存储在第一链表中,防止了事件丢失,和之后上报不成功。
[0038]执行步骤S300:将所述第一链表中的AP事件消息上报服务器,同时将所述第一链表的链路状态置为忙碌状态,直至收到所述服务器的回复,再将所述第一链表的链路状态置为空闲状态;
[0039]当所述第一链表的链路状态为忙碌状态时,执行步骤S310:将接收到的AP事件消息存储在所述第二链表中;
[0040]当所述第一链表的链路状态为空闲状态时,执行步骤S320:将所述第二链表中的AP事件消息上报所述服务器。
[0041]这样,在第一链表中的AP事件消息上报服务器的时候,接收到的AP事件消息存储在所述第二链表中,即保持了所述第一链表中的AP事件消息上报服务器不被干扰,也保证了在第一链表中的AP事件消息在上报这一段时间中接收到的AP事件消息能无遗漏的被存储在所述第二链表中。当所述第一链表中的AP事件消息上报结束后,将所述第一链表置为空闲状态,可以接收新的AP事件消息,同时将第二链表中的AP事件消息上报到服务器。这样,确保了所有AP事件消息都能被存储且被上报,而上报过程不会被新的AP事件消息干扰,能够顺利进行。
[0042]进一步地,还包括:所述将所述第二链表中的AP事件消息上报所述服务器的步骤之前,还包括检查所述第二链表中是否有未发送的AP事件消息的步骤,若有未发送的AP事件,则将所述第二链表中的未发送的AP事件上报至所述服务器。
[0043]在AP收到远程服务器发送的回复报文之后,检查是否有因为第一链表忙碌而没有发送出去的事件(存储在第二链表中),如果有,则继续发送AP事件消息报文,并一次性将所有的事件上报上去,可以减轻远程服务器的压力。
[0044]进一步地,还包括:当所述第一链表的链路状态为空闲状态时,可以接受AP事件消息。
[0045]进一步地,还包括:将AP事件消息存储在所述第一链表或所述第二链表中的方法包括:将每件AP事件消息对应建立一个事件链表,并将AP事件消息的相关信息存在对应的事件链表中;在所述第一链表或者第二链表中建立存储到的AP事件对应的链表节点。
[0046]先把AP事件消息的相关的信息保存在第一链表或者第二链表的节点里面,在向服务器上报消息,发送AP事件消息的报文的时候,逐个从第一链表或者第二链表里面读取信息,并按照相关定义格式拼接成字符串。
[0047]进一步地,将所述第一链表中的AP事件消息上报服务器或者将所述第二链表中的AP事件消息上报所述服务器的步骤包括:遍历所述第一链表或者第二链表中的事件链表节点,将每个事件链表中存储的值取出;删除已取出值的所述事件链表节点。这样能够防止AP事件消息重复上报。
[0048]综上所述,采用上述的瘦AP处理事件通知消息的方法具有以下优点:
[0049](I)在同一时刻有大量的用户终端接入AP的时候,可以保证用户终端正常工作。
[0050](2)AP在收到远程服务器的回复报文之后,再检查一次是否有未发送的事件,这样既能保证把所有的事件上报到远程服务器,又可以减少远程服务器的压力。
[0051]以下提供一具体的实施例:
[0052]第一部分:
[0053](I)定义一个data_t结构体用来存储消息内容
[0054]typedefstruct
[0055]{
[0056]char value[64];
[0057]}data_t;
[0058](2)定义一个kvlist的链表
[0059]typedefstruct
[0060]{
[0061]structkvlist list;
[0062]}mgr_t;
[0063](3)分别为每个事件定义一个链表
[0064]typedefstruct
[0065]{
[0066]......
[0067]mgr_tclientInMgr;
[0068]mgr_tcIi entOutMgr;
[0069]mgr_tclientT imeOutMgr;
[0070]mgr_tradiusClientInMgr;
[0071]}inform_t;
[0072]在有事件上报的时候将每个信息存入链表kvl ist_set (structkvl ist*kv, constchar*name , const void*data),在发送inform报文的时候遍历链表里面的结点avl_for_each_element ()将值取出,然后删除该结点kvl ist_delete (structkvl ist*kv , constchar*name)。
[0073]第二部分:
[0074]AP收到一个event事件,即发送inform,同时链路状态设为busy,中间有其他事件上报时,将事件加入unSendEvnt列表,AP收到远程服务器的回复之后,将链路状态设置为idle,然后再发送unSendEvnt列表里面的事件,如果没有,则不再发送inform。
[0075]另外,本发明还提供了一种瘦AP装置,包括:
[0076]链表存储单元,包括第一链表单元和第二链表单元;
[0077]接收单元,适于将接收到的AP事件消息存储在所述第一链表单元中;
[0078]发送单元,适于将所述第一链表单元中的AP事件消息上报服务器;
[0079]控制单元,适于在所述发送单元将所述第一链表单元中的AP事件消息上报服务器时,将所述第一链表单元的链路状态置为忙碌状态,直至所述接收单元收到所述服务器的回复,再将所述第一链表单元的链路状态置为空闲状态;
[0080]当所述第一链表单元的链路状态为忙碌状态时,所述发送单元适于将所述接收单元接收到的AP事件消息存储在所述第二链表单元中;
[0081]当所述第一链表单元的链路状态为空闲状态时,所述发送单元适于将所述第二链表单元中的AP事件消息上报所述服务器。
[0082]进一步的,所述瘦AP还包括:检测单元,适于在所述控制单元将所述第二链表单元中的AP事件消息上报所述服务器之前,检查所述第二链表单元中是否有未发送的AP事件消息的步骤,若有未发送的AP事件消息,所述发送单元适于将所述第二链表单元中的未发送的AP事件消息上报至所述服务器。
[0083]进一步的,所述瘦AP还包括:所述接收单元还适于当所述第一链表单元的链路状态为空闲状态时,接受AP事件消息。
[0084]进一步的,所述存储单元还包括:事件链表单元,适于对应所述AP事件消息以存储相关信息;在所述第一链表单元或者第二链表单元中建立所存储的AP事件对应的事件链表节点。
[0085]进一步的,所述发送单元还包括:浏览模块和删除模块,所述浏览模块适于在将所述第一链表单元或者将所述第二链表单元中的AP事件消息上报所述服务器时:遍历所述第一链表单元或者第二链表单元中的事件链表节点,将每个事件链表单元中存储的值取出;所述删除模块适于在所述浏览模块遍历所述事件链表节点时,并删除已取出值的所述事件链表节点。
[0086]需要说明的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等。
[0087]本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0088]需要说明的是,本领域技术人员可以理解,上述部分组件可以是可编程逻辑器件,包括:可编程阵列逻辑(ProgrammabIe Array Logic,PAL)、通用阵列逻辑(Generic ArrayLogic,GAL)、现场可编程门阵列(Field—Programmable Gate Array ,FPGA)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)中的一种或多种,本发明对此不做具体限制。
[0089]本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
【主权项】
1.一种瘦AP处理事件通知消息的方法,其特征在于,包括: 建立第一链表和第二链表; 将接收到的AP事件消息存储在所述第一链表中; 将所述第一链表中的AP事件消息上报服务器,同时将所述第一链表的链路状态置为忙碌状态,直至收到所述服务器的回复,再将所述第一链表的链路状态置为空闲状态; 当所述第一链表的链路状态为忙碌状态时,将接收到的AP事件消息存储在所述第二链表中; 当所述第一链表的链路状态为空闲状态时,将所述第二链表中的AP事件消息上报所述服务器。2.根据权利要求1所述的瘦AP处理事件通知消息的方法,其特征在于,所述将所述第二链表中的AP事件消息上报所述服务器的步骤之前,还包括检查所述第二链表中是否有未发送的AP事件消息的步骤,若有未发送的AP事件,则将所述第二链表中的未发送的AP事件上报至所述服务器。3.根据权利要求1所述的瘦AP处理事件通知消息的方法,其特征在于,还包括:当所述第一链表的链路状态为空闲状态时,接受AP事件消息。4.根据权利要求1所述的瘦AP处理事件通知消息的方法,其特征在于,将AP事件消息存储在所述第一链表或所述第二链表中的方法包括:将每件AP事件消息对应建立一个事件链表,并将AP事件消息的相关信息存在对应的事件链表中;在所述第一链表或者第二链表中建立存储到的AP事件对应的链表节点。5.根据权利要求4所述的瘦AP处理事件通知消息的方法,其特征在于,将所述第一链表中的AP事件消息上报服务器或者将所述第二链表中的AP事件消息上报所述服务器的步骤包括:遍历所述第一链表或者第二链表中的事件链表节点,将每个事件链表中存储的值取出;删除已取出值的所述事件链表节点。6.一种瘦AP装置,其特征在于,包括: 链表存储单元,包括第一链表单元和第二链表单元; 接收单元,适于将接收到的AP事件消息存储在所述第一链表单元中; 发送单元,适于将所述第一链表单元中的AP事件消息上报服务器; 控制单元,适于在所述发送单元将所述第一链表单元中的AP事件消息上报服务器时,将所述第一链表单元的链路状态置为忙碌状态,直至所述接收单元收到所述服务器的回复,再将所述第一链表单元的链路状态置为空闲状态; 当所述第一链表单元的链路状态为忙碌状态时,所述发送单元适于将所述接收单元接收到的AP事件消息存储在所述第二链表单元中; 当所述第一链表单元的链路状态为空闲状态时,所述发送单元适于将所述第二链表单元中的AP事件消息上报所述服务器。7.根据权利要求6所述的瘦AP装置,其特征在于,还包括:检测单元,适于在所述控制单元将所述第二链表单元中的AP事件消息上报所述服务器之前,检查所述第二链表单元中是否有未发送的AP事件消息的步骤,若有未发送的AP事件消息,所述发送单元适于将所述第二链表单元中的未发送的AP事件消息上报至所述服务器。8.根据权利要求6所述的瘦AP装置,其特征在于,所述接收单元还适于当所述第一链表单元的链路状态为空闲状态时,接受AP事件消息。9.根据权利要求6所述的瘦AP装置,其特征在于,所述存储单元还包括:事件链表单元,适于对应所述AP事件消息以存储相关信息;在所述第一链表单元或者第二链表单元中建立所存储的AP事件对应的事件链表节点。10.根据权利要求9所述的瘦AP装置,其特征在于,所述发送单元还包括:浏览模块和删除模块,所述浏览模块适于在将所述第一链表单元或者将所述第二链表单元中的AP事件消息上报所述服务器时:遍历所述第一链表单元或者第二链表单元中的事件链表节点,将每个事件链表单元中存储的值取出;所述删除模块适于在所述浏览模块遍历所述事件链表节点时,并删除已取出值的所述事件链表节点。
【文档编号】H04W68/02GK106060928SQ201610246459
【公开日】2016年10月26日
【申请日】2016年4月20日
【发明人】杨华
【申请人】上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1