信息推送方法及装置的制造方法_3

文档序号:9914506阅读:来源:国知局
413,当预设推送信息的文件大小小于预设文件大小时,服务器提示控制预设推送服务器向目标地址信息对应的客户端推送预设推送信息。
[0076]步骤S42包括:
[0077]步骤S421,当服务器的网络负载小于预设负载阈值时,判断预设推送信息是否大于等于预设文件大小;
[0078]步骤S422,当预设推送信息的文件大小大于等于预设文件大小时,服务器向目标地址信息对应的目标客户端推送预设推送信息的获取地址;
[0079]步骤S423,当预设推送信息的文件大小小于预设文件大小时,服务器向目标地址信息对应的目标客户端推送预设推送信息。
[0080]当然,在步骤S40中,也可先将预设推送信息的文件大小与预设文件大小进行比较,根据与预设文件大小的比较结果确定推送内容是预设推送信息的获取地址还是预设推送信息本身;然后再将服务器的网络负载与预设负载阈值进行比较,根据与预设负载阈值的比较结果来确定服务器直接推送还是预设推送服务器间接推送。
[0081]本发明还提供一种信息推送装置,参照图5,在本发明信息推送装置第一实施例中,该信息推送装置包括:
[0082]连接模块10,用于当包含连接模块的服务器接收到客户端发送的连接请求时,建立与客户端之间的长连接;
[0083]服务器与客户端(此处客户端可以是智能手机、智能穿戴设备等终端设备)第一次连接时,客户端向服务器发起连接请求(此连接请求中可以包含该客户端的地址信息,地址信息包括IP地址、端口地址及/或MAC地址等),当服务器接收到客户端发送的连接请求时,连接模块10根据地址信息建立并保持与客户端之间的长连接。
[0084]优选地,参照图6,连接模块1包括:
[0085]建立连接单元11,当包含连接模块的服务器接收到客户端发送的连接请求时,基于TCP/IP协议与客户端进行握手操作并建立连接;
[0086]当服务器接收到客户端发送的连接请求时,建立连接单元11基于TCP/IP协议与客户端进行三次握手,以建立服务器与客户端之间的连接,在服务器和客户端完成三次握手之后,服务器开始向客户端传输数据。
[0087]心跳响应单元12,用于在收到客户端定时发送的心跳消息时,基于心跳消息向客户端反馈心跳响应,以保持与客户端之间的连接。
[0088]服务器与客户端建立长连接之后,为了防止网络防火墙断开长时间无信息交互的端口,客户端需要定时(即每间隔预设间隔时长)向服务器发送心跳消息(心跳消息(Heartbeat Message)是一种发送源发送到接收方的消息,这种消息可以让接收方确定发送源是否以及何时出现故障或终止),心跳响应单元12在接收到客户发送的心跳消息时,回应客户端与心跳消息对应的心跳响应,以保持服务器与客户端之间的长连接。
[0089]获取记录模块20,用于获取客户端的地址信息,并将获取的地址信息记录在预设数据库中并形成所述地址信息对应的索引;
[0090]获取记录模块20可在验证客户端的身份后,直接从客户端发送的连接请求中获取该客户端的地址信息,或者再次向客户端索取该客户端的地址信息(此处客户端可为多个,服务器保存多个客户端的地址信息),地址信息包括IP地址、端口地址和MAC地址,然后将获取的地址信息记录在预设数据库(例如SQL Server)中并形成所述地址信息对应的索引,该预设数据库可以安装在服务器中,也可以安装在服务器以外的设备中且与服务器保持网络连接,服务器可以从预设数据库中获取地址信息。
[0091]索引模块30,用于在侦测到信息推送指令时,在预设数据库的索引中查找并获取目标客户端对应的目标地址信息;
[0092]当索引模块30检测到目标客户端触发或者服务器自行产生的信息推送指令时(即目标客户端向服务器请求推送预设推送信息时,服务器触发产生信息推送指令),无需如现有技术中,在服务器的操作系统中轮寻成千上万个用于维护TCP连接的会话记录以获得客户端的地址信息,只需从预设数据库的索引中查找并获取目标客户端对应的目标地址信息,由于在数据库的索引中查找客户端的地址信息的速度远远大于在服务器的操作系统中轮寻会话记录查找客户端的地址信息,大大提高了查找并获取目标地址信息的速度,其中预设数据库的索引中可以保存客户端地址信息的关键字,也可以保存客户端地址信息的标识编码,无论是关键字还是标识编码,只要与客户端的地址信息对应即可。
[0093]推送模块40,用于向获取的目标地址信息对应的目标客户端推送预设推送信息。
[0094]推送模块40根据目标地址信息获取客户端的IP地址、端口地址和MAC地址,根据IP地址、端口地址及/或MAC地址填充IP数据包信息、TCP数据包信息和MAC数据包信息,以形成带有目标地址信息的数据报,再将预设推送信息打包至该数据报中,然后服务器就将该数据报投放至网络中,最终该数据报传输至目标客户端。
[0095]在本实施例中,通过在服务器接收到客户端发送的连接请求时,连接模块10建立与客户端之间的长连接,获取记录模块20获取客户端的地址信息,并将该地址信息记录在预设数据库中,当服务器检测到目标客户端触发的推送指令时,索引模块30在预设数据库的索引中查找并获取目标客户端对应的目标地址信息,然后推送模块40向获取的目标地址信息对应的目标客户端推送预设推送信息,从而服务器无需装有操作系统建立占用内存的会话记录来维护服务器与客户端的连接信息,从而避免服务器占用大量内存来保存该服务器与客户端连接的会话记录,保证了服务器运行的稳定性;同时,在服务器与成千上万个客户端保持长连接时,服务器无需轮询数以万计的会话记录来查找目标客户端的目标地址信息,仅需在预设数据库的索引中查找并获取目标客户端的目标地址信息,由于在数据库的索引中查找并获取客户端的地址信息远远快于在操作系统中轮寻会话记录获取客户端的地址信息的速度,因而大大提高了服务器查找获取客户端地址信息的速度。此外,服务器无需安装服务器级的操作系统也能实现向客户端推送信息,降低了对服务器硬件配置的要求和服务器维护的技术难度(服务器级的操作系统,如Linux,维护的技术要求很高)。
[0096]进一步地,参照图7,本发明还提供一种基于第一实施例提出本发明信息推送装置第二实施例,推送模块40包括:
[0097]间接推送单元41,用于当服务器的网络负载大于等于预设负载阈值时,将目标地址信息共享至外接的预设推送服务器,以供所述预设推送服务器向获取的目标地址信息对应的目标客户端推送预设推送信息;
[0098]在服务器的网络负载(网络负载是指与服务器连接的链路的网络拥塞程度)大于等于负载阈值时,即在服务器很难及时向目标地址信息对应的客户端推送预设推送信息时,服务器A仅保持与客户端C的连接,且间接推送单元41将目标地址信息(客户端C的目标地址信息)共享至外接的预设推送服务器B,以供预设推送服务器B实现向客户端C推送预设推送信息,实现网络负载均衡。
[0099]直接推送单元42,用于当服务器的网络负载小于预设负载阈值时,向获取的目标地址信息对应的目标客户端推送预设推送信息。
[0100]在服务器的网络负载小于负载阈值时,即在服务器可以及时向目标地址信息对应的目标客户端推送预设推送信息时,直接推送单元42可直接将预设推送信息推送至目标客户端C,无需通过预设推送服务器向客户端C推送预设推送信息。
[0101]在本实施例中,在服务器向目标客户端推送预设推送信息前,先对服务器的网络负载进行检测,在服务器的网络负载大于等于负载阈值时,间接推送单元41仅保持与客户端的连接,且间接推送单元41提示预设推送服务器实现向目标客户端推送预设推送信息;在服务器的网络负载小于负载阈值时,直接推送单元42直接将预设推送信息推送至目标客户端,从而实现服务器的网络负载均衡。
[0102]进一步地,参照图8,本发明还提供一种基于第一实施例提出本发明信息推送装置第三实施例,推送模块40包括:
[0
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1