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

文档序号:9914506阅读:来源:国知局
户端之间的长连接。
[0048]优选地,参照图2,步骤S1包括:
[0049]步骤S11,当服务器接收到客户端发送的连接请求时,服务器基于TCP/IP协议与客户端进行握手操作并建立连接;
[0050]当服务器接收到客户端发送的连接请求时,服务器基于TCP/IP协议与客户端进行三次握手,以建立服务器与客户端之间的连接,在服务器和客户端完成三次握手之后,月艮务器开始向客户端传输数据。
[0051]步骤S12,在服务器接收到客户端定时发送的心跳消息时,服务器基于心跳消息向客户端反馈心跳响应,以保持与客户端之间的连接。
[0052]服务器与客户端建立连接之后,为了防止网络防火墙断开长时间无信息交互的端口,客户端需要定时(即每间隔预设间隔时长)向服务器发送心跳消息(心跳消息(Heartbeat Message)是一种发送源发送到接收方的消息,这种消息可以让接收方确定发送源是否以及何时出现故障或终止),服务器在接收到客户发送的心跳消息时,回应客户端与心跳消息对应的心跳响应,以保持服务器与客户端之间的长连接。
[0053]步骤S20,服务器获取客户端的地址信息,并将获取的地址信息记录在预设数据库中并形成所述地址信息对应的索引;
[0054]服务器可在验证客户端的身份后,直接从客户端发送的连接请求中获取该客户端的地址信息,或者再次向客户端索取该客户端的地址信息(此处客户端可为多个,服务器保存多个客户端的地址信息),地址信息包括IP地址、端口地址和MAC地址,然后将获取的地址信息记录在预设数据库(例如SQL Server)中并形成地址信息对应的索引,该预设数据库可以安装在服务器中,也可以安装在服务器以外的设备中且与服务器保持网络连接,服务器可以从预设数据库中获取地址信息。
[0055]步骤S30,当服务器侦测到信息推送指令时,在预设数据库的索引中查找并获取目标客户端对应的目标地址信息;
[0056]当服务器检测到目标客户端触发或者服务器自行产生的信息推送指令时(即目标客户端向服务器请求推送预设推送信息时,服务器触发产生信息推送指令),无需如现有技术中,在服务器的操作系统中轮寻成千上万个用于维护TCP连接的会话记录以获得客户端的地址信息,只需从预设数据库的索引中查找并获取目标客户端对应的目标地址信息,由于在数据库索引中查找客户端的地址信息的速度远远大于在服务器的操作系统中轮寻会话记录查找客户端的地址信息,大大提高了查找并获取目标地址信息的速度,其中预设数据库的索引中可以保存客户端地址信息的关键字,也可以保存客户端地址信息的标识编码,无论是关键字还是标识编码,只要与客户端的地址信息对应即可。。
[0057]步骤S40,服务器向获取的目标地址信息对应的目标客户端推送预设推送信息。
[0058]服务器根据目标地址信息获取客户端的IP地址、端口地址和MAC地址,根据IP地址、端口地址及/或MAC地址填充IP数据包信息、TCP数据包信息和MAC数据包信息,以形成带有目标地址信息的数据报,再将预设推送信息打包至该数据报中,然后服务器就将该数据报投放至网络中,最终该数据报传输至目标客户端。
[0059]在本实施例中,通过在服务器接收到客户端发送的连接请求时,服务器建立与客户端之间的长连接,服务器获取客户端的地址信息,并将该地址信息记录在预设数据库中,当服务器检测到目标客户端触发的推送指令时,在预设数据库的索引中查找并获取目标客户端对应的目标地址信息,然后服务器向获取的目标地址信息对应的目标客户端推送预设推送信息,从而服务器无需装有操作系统建立占用内存的会话记录来维护服务器与客户端的连接信息,从而避免服务器占用大量内存来保存该服务器与客户端连接的会话记录,保证了服务器运行的稳定性;同时,在服务器与成千上万个客户端保持长连接时,服务器无需轮询数以万计的会话记录来查找目标客户端的目标地址信息,仅需在预设数据库的索引中查找并获取目标客户端的目标地址信息,由于在数据库的索引中查找并获取客户端的地址信息远远快于在操作系统中轮寻会话记录获取客户端的地址信息的速度,因而大大提高了服务器查找获取客户端地址信息的速度。此外,服务器无需安装服务器级的操作系统也能实现向客户端推送信息,降低了对服务器硬件配置的要求和服务器维护的技术难度(服务器级的操作系统,如Linux,维护的技术要求很高)。
[0060]进一步地,参照图3,本发明还提供一种基于第一实施例提出本发明信息推送方法第二实施例,步骤S40包括:
[0061]步骤S41,当服务器的网络负载大于等于预设负载阈值时,服务器将目标地址信息共享至外接的预设推送服务器,以供所述预设推送服务器向获取的目标地址信息对应的目标客户端推送预设推送信息;
[0062]在服务器的网络负载(网络负载是指与服务器连接的链路的网络拥塞程度)大于等于负载阈值时,即在服务器很难及时向目标地址信息对应的目标客户端推送预设推送信息时,服务器A仅保持与客户端C的连接,且服务器A将目标地址信息(客户端C的地址信息)共享至外接的预设推送服务器B,以供预设推送服务器B实现向客户端C推送预设推送信息,实现网络负载均衡。
[0063]步骤S42,当服务器的网络负载小于预设负载阈值时,服务器向获取的目标地址信息对应的目标客户端推送预设推送信息。
[0064]在服务器的网络负载小于负载阈值时,即在服务器可以及时向目标地址信息对应的目标客户端推送预设推送信息时,服务器A可直接将预设推送信息推送至目标客户端C,无需通过预设推送服务器B向客户端C推送预设推送信息。
[0065]在本实施例中,在服务器向目标客户端推送预设推送信息前,先对服务器的网络负载进行检测,在服务器的网络负载大于等于负载阈值时,服务器仅保持与客户端的连接,提示预设推送服务器实现向目标客户端推送预设推送信息;在服务器的网络负载小于负载阈值时,服务器直接将预设推送信息推送至目标客户端,从而实现服务器的网络负载均衡。
[0066]进一步地,参照图4,本发明还提供一种基于第一实施例提出本发明信息推送方法第三实施例,步骤S40包括:
[0067]步骤S43,当预设推送信息的文件大小大于等于预设文件大小时,服务器向获取的目标地址信息对应的目标客户端推送预设推送信息的获取地址;
[0068]在服务器A向目标地址信息对应的目标客户端推送预设推送信息之前,先检测预设推送信息的文件大小,当预设推送信息的文件大小大于等于预设文件大小时,即预设推送文件可能为视频、音频等大信息时,不方便直接推送源文件,则服务器A向目标地址信息对应的目标客户端C推送预设推送信息的获取地址,该获取地址可以为下载网站地址、邮箱地址、IP地址和端口地址等。
[0069]步骤S44,当预设推送信息的文件大小小于预设文件大小时,服务器向获取的目标地址信息对应的目标客户端推送预设推送信息。
[0070]当预设推送信息的文件大小小于预设文件大小时,即预设推送文件可能为指令、消息等小信息时,服务器A直接向目标地址信息对应的客户端C推送预设推送信息。
[0071]在本实施例中,在服务器向目标地址信息对应的目标客户端推送预设推送信息之前,先检测预设推送信息的文件大小,在预设推送信息的文件大小大于等于预设文件大小时,服务器将预设推送文件的获取地址推送至对应客户端;在预设推送信息的文件大小小于预设文件大小时,服务器将预设推送文件推送至对应客户端,从而进一步优化了服务器的网络负载均衡。
[0072]此外,本发明信息推送方法第三实施例可以与第二实施例相结合,即步骤S41包括:
[0073]步骤S411,当服务器的网络负载大于等于预设负载阈值时,服务器将目标地址信息共享至外接的预设推送服务器;
[0074]步骤S412,当预设推送信息的文件大小大于等于预设文件大小时,服务器提示预设推送服务器向目标地址信息对应的目标客户端推送预设推送信息的获取地址;
[0075]步骤S
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1