CN114640705B - 一种大规模物联终端心跳监控方法 - Google Patents

一种大规模物联终端心跳监控方法 Download PDF

Info

Publication number
CN114640705B
CN114640705B CN202210424654.1A CN202210424654A CN114640705B CN 114640705 B CN114640705 B CN 114640705B CN 202210424654 A CN202210424654 A CN 202210424654A CN 114640705 B CN114640705 B CN 114640705B
Authority
CN
China
Prior art keywords
heartbeat
terminal equipment
server
data
reconnection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210424654.1A
Other languages
English (en)
Other versions
CN114640705A (zh
Inventor
李文婷
季东滨
于基庆
修建涛
张蕊
薛毅晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Ever Grand Intelligent Technology Co ltd
Original Assignee
Shandong Ever Grand Intelligent Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Ever Grand Intelligent Technology Co ltd filed Critical Shandong Ever Grand Intelligent Technology Co ltd
Priority to CN202210424654.1A priority Critical patent/CN114640705B/zh
Publication of CN114640705A publication Critical patent/CN114640705A/zh
Application granted granted Critical
Publication of CN114640705B publication Critical patent/CN114640705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种大规模物联终端心跳监控方法,终端设备向服务端发出建立websocket连接的请求,创建websocket连接,设立服务中间件;服务中间件为各个终端设备设定心跳参照数据,建立本地心跳表,终端设备与服务端采用定时发送心跳数据的方式保持长连接;大规模终端设备向服务端发起重连请求的情况下,设立websocket重连机制,避免服务端产生高并发问题。解决了现有技术中性能较低、存在着控制延时、消息不同步、对网络开销非常大、浪费网络带宽资源、对服务造成负担、影响客户使用体验感等问题。

Description

一种大规模物联终端心跳监控方法
技术领域
本发明涉及金融服务、心跳重连领域,尤其涉及一种大规模物联终端心跳监控方法。
背景技术
随着人们的生活水平提高,越来越多的人通过各种终端设备选择金融服务进行投资。很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源,不但性能较低,并且存在着控制延时、消息不同步等问题,对网络开销非常大,而且用户在页面无操作时,容易产生Websocket信息断链的问题。
我国专利申请号:CN202011431361.3,公开日:2021.04.30,公开了一种基于WebSocket的信息推送管理系统及其方法,外接的客户端发送WebSocket连接请求;接入层包括多个接入节点和注册模块;接入节点接收WebSocket连接请求,于接入节点接收客户端发送的WebSocket连接请求时,接入节点与客户端建立连接关系;注册模块对客户端和接入节点进行注册,以得到客户端对应的第一注册信息和接入节点对应的第二注册信息;服务层根据第一注册信息对客户端和接入节点之间的消息传递进行管理,还根据WebSocket连接请求数量和连接数量控制接入层是否新增接入节点,以及根据控制结果对第一注册信息和第二注册信息进行更新。
但本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:性能较低,并且存在着控制延时、消息不同步等问题,对网络开销非常大,浪费网络带宽资源,对服务造成负担,影响客户使用体验感。
发明内容
本发明通过提供一种大规模物联终端心跳监控方法,解决了现有技术中性能较低、存在着控制延时、消息不同步、对网络开销非常大、浪费网络带宽资源、对服务造成负担、影响客户使用体验感等问题,实现了轻量化发展,完全基于静态页面,无服务器端代码,运行效率高,前端使用心跳检测机制,确保链接能够时时保持联系,因为是在客户端进行检测,所以能够降低服务器的负担,同时不影响客户使用体验感。
本发明提供了一种大规模物联终端心跳监控方法,具体包括以下技术方案:
一种大规模物联终端心跳监控系统,包括以下部分:
websocket连接组件、终端设备管理组件、中间件管理组件、消息管理组件、websocket重连组件和金融服务数据库;
所述终端设备管理组件,用于管理所有的终端设备,包括终端设备统计单元、终端设备评比单元、服务中间件筛选单元和指令发布单元。所述终端设备统计单元用于将终端设备按照设备类型进行分类,获取同一类型下所有终端设备的历史传输速率、网络状况和位置信息,将上述信息发送给所述终端设备评比单元;所述终端设备评比单元用于为所有终端设备进行打分,将所有终端设备的分数发送给所述服务中间件筛选单元;所述服务中间件筛选单元用于依据终端设备的分数指定分数最高的终端设备作为服务中间件。所述终端设备管理组件将筛选出的服务中间件编号通过数据传输的方式发送给所述中间件管理组件;
所述中间件管理组件,用于由每个服务中间件获取与其对应的所有终端设备在固定时间段内向服务端发送的历史心跳数据,根据所述时间段内的心跳数据为各个终端设备设定心跳参照数据,并以此对每个心跳数据进行编码,建立本地心跳表。所述中间件管理组件将本地心跳表通过数据传输的方式发送给所述金融服务数据库;
所述消息管理组件,包括接收器单元、定时器单元和推送器单元,所述接收器单元用于接收服务端的消息,并将消息发送给定时器单元;所述定时器单元用于设立心跳数据的时间阈值,创建定时器,判断服务端的消息是否超时,若超时,则发送超时信息给所述websocket连接组件;所述推送器单元用于将接收自服务端的消息发送给终端设备,并更新本地心跳表。所述消息管理组件将超时信息通过数据传输的方式发送给所述websocket连接组件,并将心跳确认信息通过数据传输的方式发送给所述金融服务数据库;
所述websocket重连组件,用于设立websocket重连机制,随机设定一个重连等待时间阈值,并计算重连等待时间阈值的延长时间。所述websocket重连组件将重连等待时间阈值和延长时间通过数据传输的方式发送给所述websocket连接组件和所述金融服务数据库;
一种大规模物联终端心跳监控方法,包括以下步骤:
S1. 终端设备向服务端发出建立websocket连接的请求,创建websocket连接,设立服务中间件;
S2. 服务中间件为各个终端设备设定心跳参照数据,对心跳数据进行编码,建立本地心跳表,终端设备与服务端采用定时发送心跳数据的方式保持长连接;
S3. 大规模终端设备向服务端发起重连请求的情况下,设立websocket重连机制,避免服务端产生高并发问题。
优选的,所述步骤S1具体包括:
服务端与终端设备建立websocket连接后,终端设备与服务端采用定时发送心跳数据的方式保持长连接。从所有终端设备中选择服务中间件。所述服务中间件的选取规则如下:
将可用于处理、转发信息的终端设备按照设备类型进行分类,获取同一类型下所有终端设备的历史传输速率、网络状况和位置信息,为所有终端设备进行打分。根据终端设备的分数进行排列,依据终端设备的分数选取分数最高的终端设备作为服务中间件。
优选的,所述步骤S2具体包括:
每个服务中间件获取与其对应的所有终端设备在固定时间段内向服务端发送的历史心跳数据,根据所述时间段内的心跳数据为各个终端设备设定心跳参照数据。
优选的,所述步骤S2具体包括:
服务中间件获取心跳参照数据后,将所有终端设备的历史心跳数据分别与心跳参照数据进行比较,并以此对每个心跳数据进行编码。服务中间件根据编码前后的心跳数据建立本地心跳表,并且设立心跳数据的时间阈值,根据时间阈值构建定时器,将所述心跳表和心跳时间阈值公布给对应的终端设备和服务端,终端设备将编码后的心跳数据以心跳包的形式每周期发送一次给服务端,保持与服务端的实时交互。
优选的,所述步骤S3具体包括:
设置websocket重连机制,所述websocket重连机制具体方法如下:
当终端设备首次向服务端发起重新建立websocket连接后,随机设定一个重连等待时间阈值,若在重连等待时间阈值内没有收到服务端的连接信息,则终端设备向服务端发起二次重连请求。若二次重连请求发送后仍没有收到服务端的确认回复,则需延长重连等待时间阈值。
本发明的有益效果是:
1、根据终端设备的历史传输速率、网络状况和位置信息进行评比,从中选出最优的服务中间件,服务中间件可以有效减少其他终端设备的负载,节省整体资源,提高整个系统的效率;
2、服务中间件通过为各个终端设备设定心跳参照数据,对每个心跳数据进行编码,从而建立本地心跳表,将编码后心跳写入终端设备的心跳包中,减少了整体心跳数据传输的网络带宽;终端设备与服务端采用定时发送心跳数据的方式保持长连接,防止websocket响应超时,收不到来自服务端的推送,并在超时无回应的情况下,断开与服务端的websocket连接,防止websocket未能自动检测到已经与服务端断开了连接;
3、设立websocket重连机制可以缓解服务端的重连接高并发情况,防止服务端因并发量过高而宕机,进而有效提高了服务端对多个重连接请求的总体响应效率;解决了websocket自动重连问题,前端只需要创建websocket重连的包对象,就可以保证当前推送的链接通畅,防止用户因无操作时页面无响应,检测客户端与服务端的连接是否能存活;
4、本发明的技术方案能够有效解决性能较低、存在着控制延时、消息不同步、对网络开销非常大、浪费网络带宽资源、对服务造成负担、影响客户使用体验感等问题。并且,上述系统或方法经过了一系列的效果调研,通过验证,最终能够实现轻量化发展,完全基于静态页面,无服务器端代码,运行效率高,前端使用心跳检测机制,确保链接能够时时保持联系,因为是在客户端进行检测,所以能够降低服务器的负担,同时不影响客户使用体验感。
附图说明
图1为本发明所述的一种大规模物联终端心跳监控系统结构图;
图2为本发明所述的一种大规模物联终端心跳监控方法流程图;
图3为本发明所述的websocket连接流程图。
具体实施方式
本申请实施例通过提供一种大规模物联终端心跳监控方法,解决了现有技术中性能较低、存在着控制延时、消息不同步、对网络开销非常大、浪费网络带宽资源、对服务造成负担、影响客户使用体验感等问题。
本申请实施例中的技术方案为解决上述问题,总体思路如下:
1、根据终端设备的历史传输速率、网络状况和位置信息进行评比,从中选出最优的服务中间件,服务中间件可以有效减少其他终端设备的负载,节省整体资源,提高整个系统的效率;服务中间件通过为各个终端设备设定心跳参照数据,对每个心跳数据进行编码,从而建立本地心跳表,将编码后心跳写入终端设备的心跳包中,减少了整体心跳数据传输的网络带宽;终端设备与服务端采用定时发送心跳数据的方式保持长连接,防止websocket响应超时,收不到来自服务端的推送,并在超时无回应的情况下,断开与服务端的websocket连接,防止websocket未能自动检测到已经与服务端断开了连接;设立websocket重连机制可以缓解服务端的重连接高并发情况,防止服务端因并发量过高而宕机,进而有效提高了服务端对多个重连接请求的总体响应效率;解决了websocket自动重连问题,前端只需要创建websocket重连的包对象,就可以保证当前推送的链接通畅,防止用户因无操作时页面无响应,检测客户端与服务端的连接是否能存活。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
参照附图1,本发明所述的一种大规模物联终端心跳监控系统,包括以下部分:
websocket连接组件10、终端设备管理组件20、中间件管理组件30、消息管理组件40、websocket重连组件50和金融服务数据库60
所述websocket连接组件10,用于创建websocket实例,终端设备向服务端发送websocket连接请求,服务端验证后与,终端设备建立websocket连接,并在超过时间阈值接收不到服务端消息时,断开websocket连接;
所述终端设备管理组件20,用于管理所有的终端设备,包括终端设备统计单元、终端设备评比单元、服务中间件筛选单元和指令发布单元。所述终端设备统计单元用于将终端设备按照设备类型进行分类,获取同一类型下所有终端设备的历史传输速率、网络状况和位置信息,将上述信息发送给终端设备评比单元;所述终端设备评比单元用于为所有终端设备进行打分,将所有终端设备的分数发送给服务中间件筛选单元;所述服务中间件筛选单元用于依据终端设备的分数指定分数最高的终端设备作为服务中间件。终端设备管理组件20将筛选出的服务中间件编号通过数据传输的方式发送给中间件管理组件30;
所述中间件管理组件30,用于由每个服务中间件获取与其对应的所有终端设备在固定时间段内向服务端发送的历史心跳数据,根据所述时间段内的心跳数据为各个终端设备设定心跳参照数据,并以此对每个心跳数据进行编码,建立本地心跳表。中间件管理组件30将本地心跳表通过数据传输的方式发送给金融服务数据库60;
所述消息管理组件40,包括接收器单元401、定时器单元402和推送器单元403,所述接收器单元401用于接收服务端的消息,并将消息发送给定时器;所述定时器单元402用于设立心跳数据的时间阈值,创建定时器,判断服务端的消息是否超时,若超时,则发送超时信息给websocket连接组件10;所述推送器单元403用于将接收自服务端的消息发送给终端设备,并更新本地心跳表。消息管理组件40将超时信息通过数据传输的方式发送给websocket连接组件10,并将心跳确认信息通过数据传输的方式发送给金融服务数据库60;
所述websocket重连组件50,用于设立websocket重连机制,随机设定一个重连等待时间阈值,并计算重连等待时间阈值的延长时间。websocket重连组件50将重连等待时间阈值和延长时间通过数据传输的方式发送给websocket连接组件10和金融服务数据库60;
所述金融服务数据库60,用于存储本地心跳表和业务信息。
参照附图2,本发明所述的大规模物联终端心跳监控方法包括以下步骤:
S1. 终端设备向服务端发出建立websocket连接的请求,创建websocket连接,设立服务中间件;
金融机构为客户提供包括融资投资、储蓄、信贷、结算、证券买卖、商业保险和金融信息咨询等多方面的服务,金融服务可以以多种形式进行,例如ATM机、电脑、手机等。客户可在终端设备选择不同金融服务,终端设备根据客户的金融服务需求信息生成自定义的ServiceData,然后将ServiceData发送给金融服务端,为客户提供金融服务。由于金融服务类型繁多、服务量大,因此服务器连接的金融服务终端数量规模巨大。
终端设备通过JavaScript向服务端发出建立websocket连接的请求,创建连接:
var ws = new websocket(url);
服务端在接收到websocket连接请求后,验证信息有效,并回传给终端设备websocket success,即握手成功:
ws.onopen = () => {
console.log("websocket success!");
};
终端设备在收到服务端的websocket success后,服务端与终端设备连接成功。
服务端与终端设备建立websocket连接后,终端设备与服务端采用定时发送心跳数据的方式保持长连接。为了减少大规模终端设备传输心跳数据的网络带宽,从所有终端设备中选择服务中间件。所述服务中间件的选取规则如下:
将可用于处理、转发信息的终端设备按照设备类型进行分类,获取同一类型下所有终端设备的历史传输速率、网络状况和位置信息,为所有终端设备进行打分。所述打分规则为:
Figure 507626DEST_PATH_IMAGE002
其中,
Figure 752662DEST_PATH_IMAGE004
是第u个终端设备的分数,
Figure 611028DEST_PATH_IMAGE006
Figure 802975DEST_PATH_IMAGE008
Figure 695976DEST_PATH_IMAGE010
是不同项对应的权重,
Figure 580755DEST_PATH_IMAGE012
是第u个终端设备的第i个历史传输速率,
Figure 395258DEST_PATH_IMAGE014
是选取的历史传输速率值的个数,
Figure 656476DEST_PATH_IMAGE016
是n个历史传输速率的平均值,
Figure 135474DEST_PATH_IMAGE018
Figure 738625DEST_PATH_IMAGE020
是第u个终端设备断网的次数,
Figure 555271DEST_PATH_IMAGE022
是第u个终端设备的位置,
Figure 557862DEST_PATH_IMAGE024
是第j个终端设备的位置,m是终端设备的总数,
Figure 691034DEST_PATH_IMAGE026
Figure 933928DEST_PATH_IMAGE028
Figure 237870DEST_PATH_IMAGE030
是第u个终端设备与第j个终端设备的距离。根据终端设备的分数进行排列,依据终端设备的分数选取分数最高的终端设备作为服务中间件。
所述步骤S1的有益效果为:根据终端设备的历史传输速率、网络状况和位置信息进行评比,从中选出最优的服务中间件,服务中间件可以有效减少其他终端设备的负载,节省整体资源,提高整个系统的效率。
S2. 服务中间件为各个终端设备设定心跳参照数据,对心跳数据进行编码,建立本地心跳表,终端设备与服务端采用定时发送心跳数据的方式保持长连接;
每个服务中间件获取与其对应的所有终端设备在固定时间段内向服务端发送的历史心跳数据,根据所述时间段内的心跳数据为各个终端设备设定心跳参照数据。所述心跳参照数据的设定方法为:
Figure 57534DEST_PATH_IMAGE032
其中,
Figure 763322DEST_PATH_IMAGE034
为心跳参照数据,
Figure 239434DEST_PATH_IMAGE036
为所有心跳数据的平均值,
Figure 515826DEST_PATH_IMAGE038
为与其他心跳数据差异值最小的心跳数据,
Figure 656957DEST_PATH_IMAGE040
为差异和,
Figure 967984DEST_PATH_IMAGE042
为所有心跳数据的方差,
Figure 598685DEST_PATH_IMAGE044
为方差阈值。
服务中间件获取心跳参照数据后,将所有终端设备的历史心跳数据分别与心跳参照数据进行比较,并以此对每个心跳数据进行编码:
Figure 890602DEST_PATH_IMAGE046
其中,
Figure 320577DEST_PATH_IMAGE048
为编码后的心跳包,
Figure 266536DEST_PATH_IMAGE050
是原始心跳数据,
Figure 22134DEST_PATH_IMAGE052
是加权系数,
Figure 522385DEST_PATH_IMAGE054
是心跳数据的信息熵。服务中间件根据编码前后的心跳数据建立本地心跳表,并且设立心跳数据的时间阈值,根据时间阈值构建定时器,将所述心跳表和心跳时间阈值公布给对应的终端设备和服务端,终端设备将编码后的心跳数据以心跳包的形式每周期发送一次给服务端,保持与服务端的实时交互,从而减少了大规模终端设备传输心跳数据的网络带宽。
所述心跳包包括时间戳和终端设备ID。时间戳含有心跳数据的发送时间,可以为终端设备的心跳发送时间进行校准。
终端设备(包含服务中间件)与服务端采用定时发送心跳数据的方式保持长连接,若终端设备网络状况正常,则终端设备将心跳数据发送给服务端后,服务端反馈确认信息给终端设备,此时,终端设备可清掉当前心跳计时器以及重连超时的定时器,更新本地心跳表,并可将金融服务需求信息ServiceData发送给服务端;若终端设备网络状况异常,则终端设备接收不到服务端的确认信息。
终端设备对服务端的消息进行监听,收到任何消息都说明当前连接是正常的,监听消息推送:
ws.onmessage = (message) => {
console.log(JSON.stringify(message));
};
若终端设备未能够及时收到服务端的确认消息,超过定时器的时间阈值时,终端设备再次发送请求给服务端,若仍无回应,则终端设备销毁之前创建的与服务端的websocket实例。断开连接:
ws.onclose = () => {
console.log("websocket close!");
};
终端设备在与服务端断开websocket连接后,需要尝试建立新的websocket连接,进行重连,如图3所示。
所述步骤S2的有益效果为:服务中间件通过为各个终端设备设定心跳参照数据,对每个心跳数据进行编码,从而建立本地心跳表,将编码后心跳写入终端设备的心跳包中,减少了整体心跳数据传输的网络带宽;终端设备与服务端采用定时发送心跳数据的方式保持长连接,防止websocket响应超时,收不到来自服务端的推送,并在超时无回应的情况下,断开与服务端的websocket连接,防止websocket未能自动检测到已经与服务端断开了连接。
S3. 大规模终端设备向服务端发起重连请求的情况下,设立websocket重连机制,避免服务端产生高并发问题。
由于金融物联终端设备数据巨大,存在大规模物联终端断连的情况,在此种情况下,若大规模终端设备立即向服务端发起重连请求,将会导致服务端的重连请求并发量陡增,短时间内响应大量的重连请求需要充足的计算资源,为了避免大规模的重连请求持续维持在高并发水平,设置了websocket重连机制,所述websocket重连机制具体方法如下:
当终端设备首次向服务端发起重新建立websocket连接后,随机设定一个重连等待时间阈值,若在重连等待时间阈值内没有收到服务端的连接信息,则终端设备向服务端发起二次重连请求。若二次重连请求发送后仍没有收到服务端的确认回复,则需延长重连等待时间阈值。
值得注意的是,首次设定的重连等待时间阈值由于是随机选取,因此可以分散各个终端设备的重连等待时间阈值,从而缓解服务端的重连高并发情况。二次重连失败后,统一延长重连等待时间阈值。所述重连等待时间阈值的延长时间为:
Figure 552789DEST_PATH_IMAGE056
其中,
Figure 835479DEST_PATH_IMAGE058
为重连等待时间阈值的延长时间,
Figure 11245DEST_PATH_IMAGE060
是服务端接收第i个终端设备的心跳数据的时间,
Figure 749525DEST_PATH_IMAGE062
是第i个终端设备发送心跳数据的时间,n是需要重连的终端设备总数,
Figure DEST_PATH_IMAGE064
确定二次重连请求是否成功,若仍没有收到服务端或终端设备的信息,则向服务端发起三次重连请求。
所述步骤S3的有益效果为:设立websocket重连机制可以缓解服务端的重连接高并发情况,防止服务端因并发量过高而宕机,进而有效提高了服务端对多个重连接请求的总体响应效率;解决了websocket自动重连问题,前端只需要创建websocket重连的包对象,就可以保证当前推送的链接通畅,防止用户因无操作时页面无响应,检测客户端与服务端的连接是否能存活。
综上所述,便完成了本发明所述的一种大规模物联终端心跳监控方法。
效果调研:
本发明的技术方案能够有效解决性能较低、存在着控制延时、消息不同步、对网络开销非常大、浪费网络带宽资源、对服务造成负担、影响客户使用体验感等问题。并且,上述系统或方法经过了一系列的效果调研,通过验证,最终能够实现轻量化发展,完全基于静态页面,无服务器端代码,运行效率高,前端使用心跳检测机制,确保链接能够时时保持联系,因为是在客户端进行检测,所以能够降低服务器的负担,同时不影响客户使用体验感。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种大规模物联终端心跳监控系统,其特征在于,包括以下部分:
websocket连接组件、终端设备管理组件、中间件管理组件、消息管理组件、websocket重连组件和金融服务数据库;
所述终端设备管理组件,用于管理所有的终端设备,包括终端设备统计单元、终端设备评比单元、服务中间件筛选单元和指令发布单元;所述终端设备统计单元用于将终端设备按照设备类型进行分类,获取同一类型下所有终端设备的历史传输速率、网络状况和位置信息,将上述信息发送给所述终端设备评比单元;所述终端设备评比单元用于为所有终端设备进行打分,将所有终端设备的分数发送给所述服务中间件筛选单元;所述服务中间件筛选单元用于依据终端设备的分数指定分数最高的终端设备作为服务中间件;所述终端设备管理组件将筛选出的服务中间件编号通过数据传输的方式发送给所述中间件管理组件;
所述中间件管理组件,用于由每个服务中间件获取与其对应的所有终端设备在固定时间段内向服务端发送的历史心跳数据,根据所述时间段内的心跳数据为各个终端设备设定心跳参照数据,所述心跳参照数据的设定方法为:
Figure 140316DEST_PATH_IMAGE002
其中,
Figure 932823DEST_PATH_IMAGE004
为心跳参照数据,
Figure 384664DEST_PATH_IMAGE006
为所有心跳数据的平均值,
Figure 917889DEST_PATH_IMAGE008
为与其他心跳数据差异值最小的心跳数据,
Figure 404365DEST_PATH_IMAGE010
为差异和,
Figure 367773DEST_PATH_IMAGE012
为所有心跳数据的方差,
Figure 306910DEST_PATH_IMAGE014
为方差阈值;并以此对每个心跳数据进行编码:
Figure 646756DEST_PATH_IMAGE016
其中,
Figure 253318DEST_PATH_IMAGE018
为编码后的心跳包,
Figure 384697DEST_PATH_IMAGE020
是原始心跳数据,
Figure 279972DEST_PATH_IMAGE022
是加权系数,
Figure 423508DEST_PATH_IMAGE024
是心跳数据的信息熵;建立本地心跳表;所述中间件管理组件将本地心跳表通过数据传输的方式发送给所述金融服务数据库;
所述消息管理组件,包括接收器单元、定时器单元和推送器单元,所述接收器单元用于接收服务端的消息,并将消息发送给定时器单元;所述定时器单元用于设立心跳数据的时间阈值,创建定时器,判断服务端的消息是否超时,若超时,则发送超时信息给所述websocket连接组件;所述推送器单元用于将接收自服务端的消息发送给终端设备,并更新本地心跳表;所述消息管理组件将超时信息通过数据传输的方式发送给所述websocket连接组件,并将心跳确认信息通过数据传输的方式发送给所述金融服务数据库;
所述websocket重连组件,用于设立websocket重连机制,随机设定一个重连等待时间阈值,并计算重连等待时间阈值的延长时间;所述websocket重连组件将重连等待时间阈值和延长时间通过数据传输的方式发送给所述websocket连接组件和所述金融服务数据库。
2.一种大规模物联终端心跳监控方法,其特征在于,包括以下步骤:
S1. 终端设备向服务端发出建立websocket连接的请求,创建websocket连接,设立服务中间件;
S2. 服务中间件为各个终端设备设定心跳参照数据,所述心跳参照数据的设定方法为:
Figure 353418DEST_PATH_IMAGE026
其中,
Figure 924208DEST_PATH_IMAGE028
为心跳参照数据,
Figure 100587DEST_PATH_IMAGE030
为所有心跳数据的平均值,
Figure 782235DEST_PATH_IMAGE032
为与其他心跳数据差异值最小的心跳数据,
Figure 97810DEST_PATH_IMAGE034
为差异和,
Figure DEST_PATH_IMAGE036
为所有心跳数据的方差,
Figure DEST_PATH_IMAGE038
为方差阈值;对心跳数据进行编码:
Figure DEST_PATH_IMAGE040
其中,
Figure DEST_PATH_IMAGE042
为编码后的心跳包,
Figure DEST_PATH_IMAGE044
是原始心跳数据,
Figure DEST_PATH_IMAGE046
是加权系数,
Figure DEST_PATH_IMAGE048
是心跳数据的信息熵;建立本地心跳表,终端设备与服务端采用定时发送心跳数据的方式保持长连接;
S3. 大规模终端设备向服务端发起重连请求的情况下,设立websocket重连机制,避免服务端产生高并发问题;
所述websocket重连机制具体方法如下:
当终端设备首次向服务端发起重新建立websocket连接后,随机设定一个重连等待时间阈值,若在重连等待时间阈值内没有收到服务端的连接信息,则终端设备向服务端发起二次重连请求;若二次重连请求发送后仍没有收到服务端的确认回复,则需延长重连等待时间阈值;所述重连等待时间阈值的延长时间为:
Figure DEST_PATH_IMAGE050
其中,
Figure DEST_PATH_IMAGE052
为重连等待时间阈值的延长时间,
Figure DEST_PATH_IMAGE054
是服务端接收第i个终端设备的心跳数据的时间,
Figure DEST_PATH_IMAGE056
是第i个终端设备发送心跳数据的时间,n是需要重连的终端设备总数,
Figure DEST_PATH_IMAGE058
确定二次重连请求是否成功,若仍没有收到服务端或终端设备的信息,则向服务端发起三次重连请求。
3.如权利要求2所述的一种大规模物联终端心跳监控方法,其特征在于,所述步骤S1具体包括:
服务端与终端设备建立websocket连接后,终端设备与服务端采用定时发送心跳数据的方式保持长连接;从所有终端设备中选择服务中间件;所述服务中间件的选取规则如下:
将可用于处理、转发信息的终端设备按照设备类型进行分类,获取同一类型下所有终端设备的历史传输速率、网络状况和位置信息,为所有终端设备进行打分;根据终端设备的分数进行排列,依据终端设备的分数选取分数最高的终端设备作为服务中间件。
4.如权利要求2所述的一种大规模物联终端心跳监控方法,其特征在于,所述步骤S2具体包括:
每个服务中间件获取与其对应的所有终端设备在固定时间段内向服务端发送的历史心跳数据,根据所述时间段内的心跳数据为各个终端设备设定心跳参照数据。
5.如权利要求4所述的一种大规模物联终端心跳监控方法,其特征在于,所述步骤S2具体包括:
服务中间件获取心跳参照数据后,将所有终端设备的历史心跳数据分别与心跳参照数据进行比较,并以此对每个心跳数据进行编码;服务中间件根据编码前后的心跳数据建立本地心跳表,并且设立心跳数据的时间阈值,根据时间阈值构建定时器,将所述心跳表和心跳时间阈值公布给对应的终端设备和服务端,终端设备将编码后的心跳数据以心跳包的形式每周期发送一次给服务端,保持与服务端的实时交互。
6.如权利要求2所述的一种大规模物联终端心跳监控方法,其特征在于,所述步骤S3具体包括:
设置websocket重连机制,所述websocket重连机制具体方法如下:
当终端设备首次向服务端发起重新建立websocket连接后,随机设定一个重连等待时间阈值,若在重连等待时间阈值内没有收到服务端的连接信息,则终端设备向服务端发起二次重连请求;若二次重连请求发送后仍没有收到服务端的确认回复,则需延长重连等待时间阈值。
CN202210424654.1A 2022-04-22 2022-04-22 一种大规模物联终端心跳监控方法 Active CN114640705B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210424654.1A CN114640705B (zh) 2022-04-22 2022-04-22 一种大规模物联终端心跳监控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210424654.1A CN114640705B (zh) 2022-04-22 2022-04-22 一种大规模物联终端心跳监控方法

Publications (2)

Publication Number Publication Date
CN114640705A CN114640705A (zh) 2022-06-17
CN114640705B true CN114640705B (zh) 2022-08-09

Family

ID=81952119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210424654.1A Active CN114640705B (zh) 2022-04-22 2022-04-22 一种大规模物联终端心跳监控方法

Country Status (1)

Country Link
CN (1) CN114640705B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116260705B (zh) * 2022-12-21 2023-09-15 广西壮族自治区自然资源信息中心 地理信息分布式集群故障处理方法、装置、介质及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291808A (zh) * 2011-06-03 2011-12-21 莫雅静 一种网络通信方法、通信设备以及通信设备的中间件
CN103532784A (zh) * 2013-10-17 2014-01-22 中国联合网络通信集团有限公司 一种发送心跳消息的方法、系统、终端及网络设备
CN106850784A (zh) * 2017-01-17 2017-06-13 华东交通大学 智能主机与云服务之间的通信方法
CN108306852A (zh) * 2017-12-05 2018-07-20 上海金融期货信息技术有限公司 一种基于简单二进制编码的消息中间件系统和方法
CN109150670A (zh) * 2018-11-05 2019-01-04 中通天鸿(北京)通信科技股份有限公司 一种用于保持连接的心跳方法和系统
CN112733051A (zh) * 2020-12-09 2021-04-30 新华智云科技有限公司 一种基于WebSocket的信息推送管理系统及其方法
WO2021128915A1 (zh) * 2019-12-25 2021-07-01 苏宁云计算有限公司 智能设备的监控方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683509B2 (en) * 2009-10-14 2014-03-25 At&T Intellectual Property I, L.P. Multimedia content distribution management
CN111343218A (zh) * 2018-12-18 2020-06-26 杭州光启人工智能研究院 基于心跳报文数据发送和接收方法、存储介质及处理器
CN112073473B (zh) * 2020-08-18 2023-03-24 浙江鸿城科技有限责任公司 一种物联网设备心跳包数据采集方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291808A (zh) * 2011-06-03 2011-12-21 莫雅静 一种网络通信方法、通信设备以及通信设备的中间件
CN103532784A (zh) * 2013-10-17 2014-01-22 中国联合网络通信集团有限公司 一种发送心跳消息的方法、系统、终端及网络设备
CN106850784A (zh) * 2017-01-17 2017-06-13 华东交通大学 智能主机与云服务之间的通信方法
CN108306852A (zh) * 2017-12-05 2018-07-20 上海金融期货信息技术有限公司 一种基于简单二进制编码的消息中间件系统和方法
CN109150670A (zh) * 2018-11-05 2019-01-04 中通天鸿(北京)通信科技股份有限公司 一种用于保持连接的心跳方法和系统
WO2021128915A1 (zh) * 2019-12-25 2021-07-01 苏宁云计算有限公司 智能设备的监控方法及装置
CN112733051A (zh) * 2020-12-09 2021-04-30 新华智云科技有限公司 一种基于WebSocket的信息推送管理系统及其方法

Also Published As

Publication number Publication date
CN114640705A (zh) 2022-06-17

Similar Documents

Publication Publication Date Title
US20220239508A1 (en) Blockchain message processing method and apparatus, computer, and readable storage medium
US9774697B2 (en) Method, apparatus, and system for pushing notification
US10027773B2 (en) Methods and apparatus to share online media impressions data
US8683041B2 (en) Service level management system
US10986386B2 (en) Video monitoring method and device, storage medium, and electronic device
US20060294228A1 (en) Systems and methods for preventing server overload
US8204986B2 (en) Multi-hierarchy latency measurement in data centers
CN101605092A (zh) 一种基于内容的负载均衡系统
CN108390950A (zh) 一种消息推送方法、装置及设备
CN114024972B (zh) 一种长连接通信方法、系统、装置、设备及存储介质
WO2021237433A1 (zh) 消息推送方法、装置、电子设备及计算机可读介质
CN105991412A (zh) 消息推送方法及装置
US11677639B2 (en) Connection management between applications and service resources
CN114640705B (zh) 一种大规模物联终端心跳监控方法
CN106789394A (zh) 一种长连接服务器保活报文控制方法及系统
CN104010228A (zh) 一种用于基于级的自动调整的对等媒体流的装置和方法
CN114389959B (zh) 网络拥塞控制方法、装置、电子设备及存储介质
WO2019237592A1 (zh) 数据监控方法、装置、计算机设备及存储介质
CN115665173B (zh) 一种基于MQ的WebSocket通信方法、系统和存储介质
US11838193B1 (en) Real-time load limit measurement for a plurality of nodes
CN116405546A (zh) 一种数据推送的方法及终端
CN116308671A (zh) 基于mqtt协议的在线竞价方法、电子设备及存储介质
US10506021B2 (en) Method and device for providing communication connection for a plurality of candidate applications in a mobile device
CN115567597A (zh) 一种支付结算系统的报文请求转发方法及装置
US20140078911A1 (en) Method and apparatus to determine the amount of delay in round trip latency for a connection where the tcp traffic does not contain multi-packet responses or may not be transaction oriented traffic.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A large-scale IoT terminal heartbeat monitoring method

Effective date of registration: 20220831

Granted publication date: 20220809

Pledgee: Rizhao bank Limited by Share Ltd. Yantai branch

Pledgor: SHANDONG EVER GRAND INTELLIGENT TECHNOLOGY CO.,LTD.

Registration number: Y2022980014219