一种信息发送方法及装置的制造方法_2

文档序号:8447288阅读:来源:国知局
证书ID的通知消息,均通过该服务器连接进行传输,从而提升对通知消息转发以及处理的效率。
[0042]S302,所述信息转发设备监测所述服务器的反馈。
[0043]在实际应用场景中,由于通知消息自身的消息格式可能出现错误,或者通知消息自身携带的终端应用标识(token)出现问题,那么就会导致服务器对通知消息进行处理时出现处理失败的情况,而当服务器对任一通知消息处理失败时,服务器将根据该处理失败的通知消息中携带的服务器连接标识、数字证书ID以及信息编号等信息,生成针对该通知消息的信息索引,并以错误通知的方式反馈至信息转发设备中。
[0044]故在本发明实施例中,监测所述服务器的反馈,也就是监测服务器反馈的错误通知。信息转发设备监测到服务器反馈的错误通知后,便可以根据该错误通知及时进行后续的操作(如:对相应的通知消息进行重发操作)。
[0045]S303当监测到所述服务器反馈错误通知时,根据该错误通知中携带的信息索引,在所述服务器连接的发送窗口内存储的通知消息中,查找与所述信息索引对应的通知消息,作为错误消息。
[0046]服务器所反馈的错误通知,反映了服务器对某一通知消息处理失败,信息转发设备在接收到该错误通知后,就可根据错误通知中的信息索引查找到与该信息索引对应的通知消息,查找到的通知消息就是服务器处理失败的通知消息,也就可将该通知消息作为错误消息。
[0047]但在现有技术中,信息转发设备内运行的转发进程将通知消息转发至服务器后,会将已转发的通知消息从发送窗口中删除,导致通知消息丢失,从而降低对通知消息进行转发的效率。
[0048]因此,为了避免信息转发设备的转发进程丢失已转发的通知消息,在本申请实施例中,当信息转发设备通过其发送窗口将通知消息转发至服务器后,并不会立即删除已转发的通知消息,而是将已转发的通知消息临时存储在该发送窗口中。这样一来,如果服务器对某一通知消息处理失败,那么,信息转发设备接收到服务器反馈的错误通知后,便可以根据该错误通知中携带的信息索引,在该发送窗口中查找到出错的通知消息,以便对出错的信息进行重新发送。
[0049]通过这样的方式,当信息转发设备接收到服务器反馈的出错通知后,可以直接在相应的服务器连接的发送窗口中快速地查找与信息索引对应的通知消息(也即,出错消息),有效地减少了准备重发通知消息所需的时间。
[0050]S304,所述信息转发设备根据该错误消息,将相应的通知消息通过所述发送窗口重发至所述服务器。
[0051]正是因为服务器连接的发送窗口发送通知消息后,并不删除已经发送的通知消息,而是临时存储在该发送窗口中,那么,当信息转发设备根据服务器反馈的错误通知中的信息索引,就可以将存储在发送窗口中的通知消息进行重发。
[0052]当然,对于上述步骤S301?S304而言,在实际应用场景下,均可由信息转发设备中运行的相应工作进程执行上述操作,如:由转发进程获取连接池中的服务器连接,并对通知消息执行转发操作;由监听进程,执行对服务器的反馈的监测操作。又或者,由转发进程对通知消息执行重发操作。这里并不构成对本发明的限定。
[0053]通过上述步骤,信息转发设备使用服务器连接的发送窗口,将相应的通知消息转发至服务器中后,并不会将已转发的通知消息从发送窗口中删除,而是将已转发的通知消息临时存储在发送窗口中,当服务器对信息转发设备所转发的通知消息处理失败时,信息转发设备可以根据服务器反馈的出错通知,直接在发送窗口中存储的各个通知消息中查找错误消息,从而立即根据该错误消息重发至服务器中。这样的方式有效地解决了现有技术中信息转发设备重发通知消息时效率较低的问题。
[0054]需要说明的是,在本发明实施例中,信息转发设备通过服务器连接的发送窗口将通知消息转发至服务器中的方式具体如图4a至图4c所示。
[0055]假设在信息转发设备中,通知消息ml?m8具有相同的数字证书ID,在这样的情况下,信息转发设备将使用一条与该数字证书ID对应的服务器连接发送通知消息ml?m8。也即,信息转发设备中相应的进程(如:push进程)会将这些通知消息添加至该服务器连接的发送窗口中。
[0056]通常,发送窗口中具有至少一个发送位置,每一个发送位置上可以添加一个通知消息,并且,当相应的转发进程要转发发送窗口中的通知消息时,将使用发送指针的方式,顺序地遍历转发各发送位置上的通知消息。
[0057]具体地,在如图4a所示的场景下,假设发送窗口中包含6个发送位置,相应的进程将通知消息ml、m2、……、m6添加至该发送窗口中。并且,相应的转发进程从该发送窗口的左起第一个发送位置开始,顺序地逐个发送各发送位置上的各通知消息。如:在图4a中,发送指针指向通知消息ml所在的发送位置,也就表明,转发进程将发送该通知消息ml。
[0058]如图4b所示,采用这样的转发方式,假设通知消息ml?m3已经转发至服务器中,那么,在图4b中,发送指针在当前时刻将指向通知消息m4所在的发送位置,表明相应的进程将准备转发通知消息m4。
[0059]此时,假设服务器针对通知消息m3处理失败,那么,该服务器将生成错误通知,反馈至该信息转发设备中。但是,信息转发设备接收到服务器反馈的错误通知需要耗费一定的时间,而在这段时间内,信息转发设备中的相应转发进程,仍会继续转发发送窗口中的通知消息,在信息转发设备接收到错误通知时,假设如图4c所示,转发进程已经将发送窗口中的通知消息m4和m5转发至服务器中(发送指针已经指向通知消息m6所在的发送位置,准备发送通知消息m6)。但是由于服务器对通知消息m3处理失败,服务器将不会对该服务器连接后续发送的通知消息进行处理,也就是说,服务器将拒绝处理通知消息m4和m5。
[0060]在这样的情况下,若采用现有技术的方式,即使信息转发设备重新接收到客户端再次发送的通知消息m3,信息转发设备也只会重发错误消息m3,并且,根据如图4c所示的发送窗口的状态,将继续转发发送指针所指向的发送位置上的通知消息(也即,通知消息m6),那么,会出现漏发通知消息m4和m5的情况,导致通知消息m4和m5仍不能得到服务器的处理。
[0061]为了避免在对某一错误消息重发时,出现漏发其他通知消息的情况,故对于本发明实施例中的上述步骤S104,具体为:所述信息转发设备在所述发送窗口存储的通知消息中,将位于该错误消息所在的发送位置之后的各通知消息进行重发。
[0062]这样的重发方式,便可以将服务器停止处理的后续通知消息进行重发,不会出现通知消息的遗漏。
[0063]具体地,如图5a所示,信息转发设备根据服务器反馈的错误通知中携带的信息索弓丨,确定出通知消息m3为错误消息后,相应的转发进程会重新调节发送指针的位置,对错误消息m3之后的通知信息进行重发,也即,将发送指针的位置调节至通知消息m4所在的发送位置处。这样一来,该转发进程便会顺序地逐个重发错误消息m3之后的各发送位置上的各通知消息(包括服务器拒绝处理的通知消息m4和m5)。
[0064]另外,由于服务器出于节约服务器资源的考虑,对于处理成功的通知消息将不会进行反馈,那么,当信息转发设备根据服务器反馈的错误通知中携带的信息索引,确定出通知消息m3为错误消息时,就可以认为,通知消息ml和m2已经处理成功,从而,信息转发设备中相应的进程便将该发送窗口中的通知消息ml和m2删除。也即,上述步骤S304还包括:所述信息转发设备在所述发送窗口存储的通知消息中,将所述错误消息以及位于该错误消息之前的各通知消息删除。
[0065]而且,错误消息m3极有可能因为其自身的消息格式错误,导致服务器处理失败,在这样的情况下,若将该错误消息m3也进行重发,那么,服务器在处理该错误消息m3时,仍会处理失败,从而造成不必要的处理资源的浪费。所以,作为本申请实施例中的一种优选方式,将该错误消息m3记录在错误日志中,并将该错误消息m3在该发送窗口中删除。也就是说,信息转发设备并不会重发该错误消息m3,在实际应用中,信息转发设备会根据错误日志中记录的该错误消息m3,通知相应的客户端,重新修正该错误消息m3,信息转发设备再将由客
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1