CN109561159B - 一种基于Websocket长连接的数据处理方法及系统 - Google Patents

一种基于Websocket长连接的数据处理方法及系统 Download PDF

Info

Publication number
CN109561159B
CN109561159B CN201811622417.6A CN201811622417A CN109561159B CN 109561159 B CN109561159 B CN 109561159B CN 201811622417 A CN201811622417 A CN 201811622417A CN 109561159 B CN109561159 B CN 109561159B
Authority
CN
China
Prior art keywords
server
terminal device
message
long connection
request
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
CN201811622417.6A
Other languages
English (en)
Other versions
CN109561159A (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.)
Xiamen Entropy Based Biometrics Information Technology Co ltd
Original Assignee
Xiamen Entropy Based Biometrics Information 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 Xiamen Entropy Based Biometrics Information Technology Co ltd filed Critical Xiamen Entropy Based Biometrics Information Technology Co ltd
Priority to CN201811622417.6A priority Critical patent/CN109561159B/zh
Publication of CN109561159A publication Critical patent/CN109561159A/zh
Application granted granted Critical
Publication of CN109561159B publication Critical patent/CN109561159B/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/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于Websocket长连接的数据处理方法及系统,方法包括:终端设备联网后通过登录密码登录服务器提供的ws通信地址以与服务器建立Websocket长连接;所述登录密码基于授权码生成;所述授权码基于用于标识终端设备类型和/或终端设备型号的设备码生成;基于所述Websocket长连接,所述终端设备与所述服务器按照预设的JSON格式报文进行消息交互。本发明的基于Websocket长连接的数据处理方法及系统能够实现终端设备与服务器的双向通信;同时,能够保证双向通信的数据不丢失。

Description

一种基于Websocket长连接的数据处理方法及系统
技术领域
本发明涉及通信技术领域,具体涉及一种基于Websocket长连接的数据处理方法及系统。
背景技术
传统物联网通信早期大多采用http短连接,具体,终端设备定时请求服务器实现数据上传和下发交互。采用http短连接,只能通过终端设备单通道定时向服务器发送请求,如果定时时间过长导致实时性比较差,而定时时间过短则导致服务器压力增大,因此这种http短连接的通信方式基本很难应用于对实时性要求较高的终端设备,如安防、考勤、人证等终端设备,而且在此基础上无法做到终端设备在线状态实时监控。
目前,大部分物联网行业更多采用低功耗mqtt协议,采用mqtt协议,对于终端设备上传的数据,服务器需要监听每台终端设备,这样导致服务器压力较大,而且在数据丢失问题的处理上,基本上依赖于mqtt qos属性,一旦其底层出现问题,就可能会出现数据丢失的问题。
发明内容
本发明的主要目的在于克服现有技术中的上述缺陷,提出一种基于Websocket长连接的数据处理方法及系统,能够实现终端设备与服务器的双向通信;同时,能够保证双向通信的数据不丢失。
本发明采用如下技术方案:
根据本发明的第一方面,一种基于Websocket长连接的数据处理方法,包括:
终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接;所述登录密码基于用于标识终端设备类型和/或终端设备型号的设备码生成;
基于所述Websocket长连接,所述终端设备与所述服务器按照预设的报文格式进行消息交互。
根据本发明的一个实施方式,所述终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接,包括:
所述终端设备接收与服务器建立Websocket长连接的请求;
所述终端设备向所述服务器发送包括设备码和设备序列号的请求消息以请求授权码;
所述服务器基于所述设备码生成动态授权码,或者根据所述设备码和设备序列号分配静态授权码,将包括所述动态授权码或静态授权码的响应消息返回给所述终端设备;
所述终端设备向所述服务器发送包括动态授权码或静态授权码的请求消息以请求登录密码;
所述服务器基于所述动态授权码或静态授权码生成登录密码,将包括所述登录密码的响应消息返回给所述终端设备;
基于所述登录密码,所述终端设备与服务器建立Websocket长连接。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述终端设备主动发起,所述终端设备向所述服务器发送请求消息后判断在第一预设时间内服务器是否返回成功的响应消息,如果没有,定时重传该请求消息直至服务器返回响应消息。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,判断所述终端设备是否存在在第二预设时间内待回复的请求消息,如果没有,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息包括:所述终端设备定时向所述服务器发送包括用于指示终端设备是否空闲字段的心跳消息。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,在接收到所述心跳消息时,判断所述终端设备是否空闲,如果是,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
根据本发明的第二方面,一种基于Websocket长连接的数据处理系统,包括建立有Websocket长连接的终端设备和服务器;具体的,
所述终端设备联网后通过登录密码登录所述服务器提供的通信地址以与服务器建立Websocket长连接;所述登录密码基于用于标识终端设备类型和/或终端设备型号的设备码生成;
基于所述Websocket长连接,所述终端设备与所述服务器按照预设的报文格式进行消息交互。
根据本发明的一个实施方式,所述终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接,包括:
所述终端设备接收与服务器建立Websocket长连接的请求;
所述终端设备向所述服务器发送包括设备码和设备序列号的请求消息以请求授权码;
所述服务器基于所述设备码生成动态授权码,或者根据所述设备码和设备序列号分配静态授权码,将包括所述动态授权码或静态授权码的响应消息返回给所述终端设备;
所述终端设备向所述服务器发送包括动态授权码或静态授权码的请求消息以请求登录密码;
所述服务器基于所述动态授权码或静态授权码生成登录密码,将包括所述登录密码的响应消息返回给所述终端设备;
基于所述登录密码,所述终端设备与服务器建立Websocket长连接。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述终端设备主动发起,所述终端设备向所述服务器发送请求消息后判断在第一预设时间内服务器是否返回成功的响应消息,如果没有,定时重传该请求消息直至服务器返回响应消息。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,判断所述终端设备是否存在在第二预设时间内待回复的请求消息,如果没有,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息包括:所述终端设备定时向所述服务器发送包括用于指示终端设备是否空闲字段的心跳消息。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,在接收到所述心跳消息时,判断所述终端设备是否空闲,如果是,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
由上述对本发明的描述可知,与现有技术相比,本发明具有如下有益效果:
(1)本发明一种基于Websocket长连接的数据处理方法及系统,终端设备联网后建立与服务器的Websocket长连接;基于所述Websocket长连接,所述终端设备与所述服务器按照预设的报文格式进行消息交互,实现双向通信,同时由于服务器不需要实时监听每台终端设备,所以相对于mqtt协议,服务器的压力能够大大减少;
(2)本发明一种基于Websocket长连接的数据处理方法及系统,所述登录密码基于授权码生成;所述授权码基于用于标识终端设备类型和/或终端设备型号的设备码生成;所述授权码包括动态授权码和静态授权码,所述静态授权码基于所述设备码和设备序列号生成,能够解决终端设备客户遇到的串货问题;
(3)本发明一种基于Websocket长连接的数据处理方法及系统,终端设备和服务器消息交互过程中,由请求消息的发起端保障消息不丢失;
(4)本发明一种基于Websocket长连接的数据处理方法及系统,终端设备定时向所述服务器发送包括用于指示终端设备是否空闲字段的心跳消息,一方面能够维持长连接状态,另一方面服务器能够判断出是否终端设备是否空闲。
上述说明仅是本发明技术方案的概述,为了能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下列举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述及其他目的、优点和特征。
附图说明
图1为本发明实施例的基于Websocket长连接的数据处理方法流程图;
图2为本发明实施例的终端设备与服务器建立Websocket长连接的流程图;
图3为本发明实施例的终端设备发起的数据上传流程图;
图4为本发明实施例的服务器发起的数据下发流程图一;
图5为本发明实施例的服务器发起的数据下发流程图二;
图6为本发明实施例的基于Websocket长连接的数据处理系统结构框图;
图7为本发明实施例的服务器的硬件结构框图。
具体实施方式
以下通过具体实施方式对本发明作进一步的描述。
参见图1所示,一方面,本发明提出一种基于Websocket长连接的数据处理方法,包括:
S101,终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接;所述登录密码基于用于标识终端设备类型和/或终端设备型号的设备码生成。
具体的,所述终端设备包括但不限于考勤设备、安防设备、人证识别(对比)终端、门禁机、视屏监控设备和采集器等等。
所述服务器可以是一台服务器,也可以是若干台服务器组成的服务器集群,或者是一个云端服务器。云端服务器是一个超大服务器集群,是云计算服务的重要组成部分,是面向各类互联网用户提供综合业务能力的服务平台。
所述终端设备联网后,通过登录密码登录服务器提供的ws通信地址((如ws://dconn.xxx.com))以与服务器建立Websocket长连接;所述登录密码基于用于标识终端设备类型和/或终端设备型号的设备码生成。所述登录密码基于授权码生成;所述授权码基于用于标识终端设备类型和/或终端设备型号的设备码生成。当然,也可以所述设备码直接生成登录密码。
参见图2所示,所述终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接,具体包括:
S201,所述终端设备接收与服务器建立Websocket长连接的请求;
S202,所述终端设备向所述服务器发送包括设备码和设备序列号的请求消息以请求授权码;
所述设备码deviceKey为终端设备出厂就内置的属性,不同设备型号的设备码deviceKey不一样,若服务器支持此型号才会将设备码deviceKey列入服务器之中。具体的,所述设备码deviceKey可以根据需要按照产品大类或小类区分,若以大类区分,可以分为考勤、安防、人证等,所述设备码deviceKey是经过固定的字符串md5加密之后32位字符串,如考勤设备为att@xxxxxx.com md5加密后的字符串;若以具体型号区分,如考勤的IFace302设备,则设备码可以是iface302&att@xxxxx.com md5加密后的字符串。
S203,所述服务器基于所述设备码生成动态授权码,或者根据所述设备码和设备序列号分配静态授权码,将包括所述动态授权码或静态授权码的响应消息返回给所述终端设备;
具体的,服务器接收到所述设备码后,判断该设备码是否有在本服务器中存储,即本服务器是否支持该设备码,如果支持,根据所述动态码随机生成一个动态授权码返回给终端设备。此外,如果服务器支持该设备码,且服务器中配置有与该设备码和设备序列号均匹配的静态授权码,则可以不生成动态授权码,直接返回静态授权码给所述终端设备。由于静态授权码与设备序列号匹配,而设备序列号是终端设备唯一的标识,因此每个设备配置的静态授权码是唯一的,能够解决终端设备客户遇到的串货问题。当然,对于未配置静态码的终端设备,可以根据设备码动态生成一个动态授权码,且服务器对该动态授权码进行保存。
S204,所述终端设备向所述服务器发送包括动态授权码或静态授权码的请求消息以请求登录密码;
S205,所述服务器基于所述动态授权码或静态授权码生成登录密码,将包括所述登录密码的响应消息返回给所述终端设备;
S206,基于所述登录密码,所述终端设备与服务器建立Websocket长连接。
具体的,所述终端设备接收服务器返回的动态授权码或静态授权码并进行存储,同时向服务器发送一条包括所述动态授权码或静态授权码的请求授权的消息,所述服务器判断所述动态授权码或静态授权码是否与存储的该终端设备的动态授权码或静态授权码相匹配,如果有匹配到,则表示授权成功,随机生成一个登录密码并存储,同时发送给所述终端设备。所述终端设备接收包括所述登录密码的响应消息并存储所述登录密码,同时,所述终端设备向所述服务器发送包括所述登录密码的请求登录消息,所述服务器判断所述登录密码是否与存储的该终端设备的登录密码相匹配,如果有匹配到,则确认登录成功。
上述消息交互过程中,终端设备向服务器发送授权码请求的消息时,如果所述服务器在预设时间内没有回复,则所述终端设备可重新发起一次或多次请求。
终端设备向服务器发送授权请求的消息时,如果所述服务器在预设时间内没有回复,则所述终端设备可重新发起一次或多次请求。
同样,终端设备向服务器发送登录请求的消息时,如果所述服务器在预设时间内没有回复,则所述终端设备可重新发起一次或多次请求。
进一步的,所述步骤202之前还包括:所述终端设备与所述服务器通过握手消息确认后续消息交互时使用的公/私钥以建立数据安全传输通道。具体的握手过程及公/私钥协商交互过程可参考现有技术,本发明实施方式不做进一步的说明。如果握手不成功,所述终端设备可重新发起一次或多次请求。
进一步的,所述终端设备登录成功后,还包括:所述终端设备向所述服务器上报设备属性。如下,所述设备属性包括设备型号、是否支持指纹、固件版本号等等。
终端设备向服务器上报的请求消息:
Figure BDA0001927200430000061
Figure BDA0001927200430000071
其中,funcId为用于指示当前消息用途的功能标识字段,即表明该条消息起什么作用;mid为消息标识字段,用于唯一标识每条消息的唯一标识,响应消息的mid与请求消息的mid号一致,这样消息发起端就可以根据所述mid判断回复的是哪一条请求数据;所述payload为请求消息主体字段,为上传的数据;所述code为响应码,用于表示消息是否发送成功。
所述所述终端设备向所述服务器上报设备属性成功后,即建立器与服务器的websocket长连接,可进行正常数据的上传和下发。
S102,基于所述Websocket长连接,所述终端设备与所述服务器按照预设的JSON格式报文进行消息交互。
具体的,所述终端设备与所述服务器交互的请求消息包括用于指示当前消息用途的功能标识字段、消息标识字段及消息主体字段;所述终端设备与所述服务器交互的响应消息包括用于用于匹配请求消息的消息标识字段和消息是否处理成功字段。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述终端设备主动发起,所述终端设备向所述服务器发送请求消息后判断在第一预设时间内服务器是否返回成功的响应消息,如果没有,定时重传该请求消息直至服务器返回响应消息。
参见图3所示,在完成设备属性上报之后,所述终端设备就可以向所述服务器上传异步数据,如下:
S301,将待上传数据放入第一消息队列,并向所述服务器发送上传数据请求消息;
S302,判断第一预设时间内是否收到服务器返回的处理成功消息;如果否,执行S303;如果是,执行S304;
S303,向所述服务器重新发送上传数据请求消息;
S304,将发送成功的请求消息从第一消息队列中删除。
具体的,所述上传数据可以是考勤设备打卡记录上传等,其中包含ack机制,上传数据由终端设备保证数据不丢失,只有在收到服务器回复成功的时候,终端设备才不用再上传此数据,否则在指定时间(如15秒)内,若没收到回复,则需一直重新上传。
如下为终端设备上传考勤记录的请求消息和服务器回复的响应消息。
终端设备上传的请求消息:
Figure BDA0001927200430000081
服务器回复的响应消息:
Figure BDA0001927200430000082
其中,funcId为用于指示当前消息用途的功能标识字段,即表明该条消息起什么作用;mid为消息标识字段,用于唯一标识每条消息的唯一标识,响应消息的mid与请求消息的mid号一致,这样消息发起端就可以根据所述mid判断回复的是哪一条请求数据;所述payload为请求消息主体字段,为上传的数据;所述code为响应码,用于表示消息是否发送成功,终端设备只有收到code为00000000时才表示服务器处理终端设备上传的数据成功,否则终端设备需要重新上传这条数据,直到收到code=00000000的响应消息。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,判断所述终端设备是否存在在第二预设时间内待回复的请求消息,如果没有,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
参见图4所示,在完成设备属性上报之后,所述服务器就可以向所述终端设备下发异步数据,如下:
S401,接收下发数据请求;
S402,将待下发数据放入第二预设消息队列,并向所述终端设备发送下发数据请求消息;
S403,判断第二预设时间内是否收到终端设备返回的处理成功消息;如果否,执行S404;如果是,执行S405;
S404,判断所述终端设备是否存在在第二预设时间内待回复的请求消息,如果有,不做处理;如果没有,进一步判断所述终端设备的状态,如果为离线,不做处理,如果为在线,将存储在第二预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备;
S405,将发送成功的请求消息从第二预设消息队列中删除。
根据本发明的一个实施方式,所述终端设备与所述服务器的交互消息包括:所述终端设备定时向所述服务器发送包括用于指示终端设备是否空闲字段的心跳消息,如下:
Figure BDA0001927200430000091
上述心跳消息包含两个作用,其一是用于维持长连接状态,其二是终端设备告知服务器其目前命令处理状态是否繁忙,服务端以此判断是否继续推送(下发)数据,以此保证在数据不丢失情况下,能够实时又不重复的推送数据。其中服务器会通过isFree属性做业务处理,0表示终端设备正在处理命令,1表示终端设备空闲,未在处理命令;当isFree=0时,服务器不会再主动推送普通命令的消息到终端设备,只有当下发的所有命令都回复了(如图4的流程)或者下一次心跳isFree=1的时候才会触发对这台终端设备的推送事件。
基于所述心跳消息,根据本发明的一个实施方式,所述服务器向所述终端设备下发请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,所述服务器将在第二预设时间内未收到响应的请求消息推送到预设消息队列,并在接收到所述心跳消息时,判断所述终端设备是否空闲,如果是,将所述预设消息队列中的一条或多条请求消息重新发送至所述终端设备。
具体的交互过程参见图5所示,如下:
S501,接收下发数据请求;
S502,将待下发数据放入第二预设消息队列,并向所述终端设备发送下发数据请求消息;
S503,判断第二预设时间内是否收到终端设备返回的处理成功消息;如果没有,执行S504;如果有,执行S505;
S504,判断是否有接收到终端设备发送的心跳消息;如果有,判断所述终端设备是否空闲,如果是,将所述第二预设消息队列中的一条或多条请求消息重新发送至所述终端设备;
S505,将发送成功的请求消息从第二预设消息队列中删除。
可以理解的是,具体实施时,如图4和如图5所示的处理流程是可以同时存在的,即通过两种方式来保证消息的及时下发。
具体的,所述下发数据的数据可以通过业务系统生成下发命令,如考勤人员数据下发(添加或修改考勤人员数据),下发的命令应存在消息队列中,推送给终端设备的命令若未收到终端设备回复的成功消息,则在下一次推送事件触发时(心跳事件或其他事件)时,应重新推送此命令消息,即下发数据由服务器保证不丢失。
如下为服务器下发的人员请求消息和终端设备回复的响应消息。
服务器下发的请求消息:
Figure BDA0001927200430000101
Figure BDA0001927200430000111
终端设备回复的响应消息:
Figure BDA0001927200430000112
其中,funcId为用于指示当前消息用途的功能标识字段,即表明该条消息起什么作用;mid为消息标识字段,用于唯一标识每条消息的唯一标识,响应消息的mid与请求消息的mid号一致,这样消息发起端就可以根据所述mid判断回复的是哪一条请求数据;所述payload为请求消息主体字段,为上传的数据;所述return为命令执行结果,必须为数字,0表示成功,其他表示失败(具体失败值由固件自定义)。
参见图6所示,根据本发明的第二方面,一种基于Websocket长连接的数据处理系统,包括建立有Websocket长连接的终端设备601和服务器602;具体的,
所述终端设备601联网后通过登录密码登录所述服务器602提供的通信地址以与服务器602建立Websocket长连接;所述登录密码基于用于标识终端设备601类型和/或终端设备601型号的设备码生成;
基于所述Websocket长连接,所述终端设备601与所述服务器602按照预设的报文格式进行消息交互。
根据本发明的一个实施方式,所述终端设备601联网后通过登录密码登录服务器602提供的通信地址以与服务器602建立Websocket长连接,包括:
所述终端设备601接收与服务器602建立Websocket长连接的请求;
所述终端设备601向所述服务器602发送包括设备码和设备序列号的请求消息以请求授权码;
所述服务器602基于所述设备码生成动态授权码,或者根据所述设备码和设备序列号分配静态授权码,将包括所述动态授权码或静态授权码的响应消息返回给所述终端设备601;
所述终端设备601向所述服务器602发送包括动态授权码或静态授权码的请求消息以请求登录密码;
所述服务器602基于所述动态授权码或静态授权码生成登录密码,将包括所述登录密码的响应消息返回给所述终端设备601;
基于所述登录密码,所述终端设备601与服务器602建立Websocket长连接。
根据本发明的一个实施方式,所述终端设备601与所述服务器602的交互消息由所述终端设备601主动发起,所述终端设备601向所述服务器602发送请求消息后判断在第一预设时间内服务器602是否返回成功的响应消息,如果没有,定时重传该请求消息直至服务器602返回响应消息。
根据本发明的一个实施方式,所述终端设备601与所述服务器602的交互消息由所述服务器602主动发起,所述服务器602向所述终端设备601发送请求消息后判断终端设备601在第二预设时间内是否返回成功的响应消息,如果没有,判断所述终端设备601是否存在在第二预设时间内待回复的请求消息,如果没有,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备601。
根据本发明的一个实施方式,所述终端设备601与所述服务器602的交互消息包括:所述终端设备601定时向所述服务器602发送包括用于指示终端设备601是否空闲字段的心跳消息。
根据本发明的一个实施方式,所述终端设备601与所述服务器602的交互消息由所述服务器602主动发起,所述服务器602向所述终端设备601发送请求消息后判断终端设备601在第二预设时间内是否返回成功的响应消息,如果没有,在接收到所述心跳消息时,判断所述终端设备601是否空闲,如果是,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备601。
图7示出了本发明实施例提供的服务器的硬件结构框图,参见图7所示,该服务器可以包括:处理器701,通信接口702,存储器703和通信总线704;其中,处理器701、通信接口702、存储器703通过通信总线704完成相互间的通信。
具体的,通信接口702可以为通信模块的接口,如GSM模块的接口;处理器701,用于执行程序;存储器703,用于存放程序和数据;程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器701可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器703可能包含高速R AM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:
接收终端设备发送的Websocket长连接请求,响应所述Websocket长连接请求以建立Websocket长连接。
还可用于:
向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,判断所述终端设备是否存在在第二预设时间内待回复的请求消息,如果没有,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
以及可用于:
向所述终端设备下发请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,所述服务器将在第二预设时间内未收到响应的请求消息推送到预设消息队列,并在接收到所述心跳消息时,判断所述终端设备是否空闲,如果是,将所述预设消息队列中的一条或多条请求消息重新发送至所述终端设备。
以及可用于:
接收所述终端设备发送的上传数据请求消息,根据处理结果响应所述请求消息。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于Websocket长连接的数据处理方法,其特征在于,包括:
终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接;所述登录密码基于用于标识终端设备类型和/或终端设备型号的设备码生成;
基于所述Websocket长连接,所述终端设备与所述服务器按照预设的报文格式进行消息交互;
所述终端设备通过登录密码登录服务器成功后,还包括:所述终端设备向所述服务器上报设备属性;在完成设备属性上报之后,基于所述Websocket长连接,所述终端设备与所述服务器按照预设的报文格式进行消息交互;
所述终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接,包括:
所述终端设备接收与服务器建立Websocket长连接的请求;
所述终端设备向所述服务器发送包括设备码和设备序列号的请求消息以请求授权码;
所述服务器基于所述设备码生成动态授权码,或者根据所述设备码和设备序列号分配静态授权码,将包括所述动态授权码或静态授权码的响应消息返回给所述终端设备;
所述终端设备向所述服务器发送包括动态授权码或静态授权码的请求消息以请求登录密码;
所述服务器基于所述动态授权码或静态授权码生成登录密码,将包括所述登录密码的响应消息返回给所述终端设备;
基于所述登录密码,所述终端设备与服务器建立Websocket长连接。
2.根据权利要求1所述的基于Websocket长连接的数据处理方法,其特征在于,所述终端设备与所述服务器的交互消息由所述终端设备主动发起,所述终端设备向所述服务器发送请求消息后判断在第一预设时间内服务器是否返回成功的响应消息,如果没有,定时重传该请求消息直至服务器返回响应消息。
3.根据权利要求1所述的基于Websocket长连接的数据处理方法,其特征在于,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,判断所述终端设备是否存在在第二预设时间内待回复的请求消息,如果没有,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
4.根据权利要求1所述的基于Websocket长连接的数据处理方法,其特征在于,所述终端设备与所述服务器的交互消息包括:所述终端设备定时向所述服务器发送包括用于指示终端设备是否空闲字段的心跳消息。
5.根据权利要求4所述的基于Websocket长连接的数据处理方法,其特征在于,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,在接收到所述心跳消息时,判断所述终端设备是否空闲,如果是,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
6.一种基于Websocket长连接的数据处理系统,其特征在于,包括建立有Websocket长连接的终端设备和服务器;具体的,
所述终端设备联网后通过登录密码登录所述服务器提供的通信地址以与服务器建立Websocket长连接;所述登录密码基于用于标识终端设备类型和/或终端设备型号的设备码生成;
基于所述Websocket长连接,所述终端设备与所述服务器按照预设的报文格式进行消息交互;
所述终端设备通过登录密码登录服务器成功后,还包括:所述终端设备向所述服务器上报设备属性;在完成设备属性上报之后,基于所述Websocket长连接,所述终端设备与所述服务器按照预设的报文格式进行消息交互;
所述终端设备联网后通过登录密码登录服务器提供的通信地址以与服务器建立Websocket长连接,包括:
所述终端设备接收与服务器建立Websocket长连接的请求;
所述终端设备向所述服务器发送包括设备码和设备序列号的请求消息以请求授权码;
所述服务器基于所述设备码生成动态授权码,或者根据所述设备码和设备序列号分配静态授权码,将包括所述动态授权码或静态授权码的响应消息返回给所述终端设备;
所述终端设备向所述服务器发送包括动态授权码或静态授权码的请求消息以请求登录密码;
所述服务器基于所述动态授权码或静态授权码生成登录密码,将包括所述登录密码的响应消息返回给所述终端设备;
基于所述登录密码,所述终端设备与服务器建立Websocket长连接。
7.根据权利要求6所述的基于Websocket长连接的数据处理系统,其特征在于,所述终端设备与所述服务器的交互消息由所述终端设备主动发起,所述终端设备向所述服务器发送请求消息后判断在第一预设时间内服务器是否返回成功的响应消息,如果没有,定时重传该请求消息直至服务器返回响应消息。
8.根据权利要求6所述的基于Websocket长连接的数据处理系统,其特征在于,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,判断所述终端设备是否存在在第二预设时间内待回复的请求消息,如果没有,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
9.根据权利要求6所述的基于Websocket长连接的数据处理系统,其特征在于,所述终端设备与所述服务器的交互消息包括:所述终端设备定时向所述服务器发送包括用于指示终端设备是否空闲字段的心跳消息。
10.根据权利要求9所述的基于Websocket长连接的数据处理系统,其特征在于,所述终端设备与所述服务器的交互消息由所述服务器主动发起,所述服务器向所述终端设备发送请求消息后判断终端设备在第二预设时间内是否返回成功的响应消息,如果没有,在接收到所述心跳消息时,判断所述终端设备是否空闲,如果是,将存储在预设消息队列中的一条或多条未发送成功的请求消息重新发送至所述终端设备。
CN201811622417.6A 2018-12-28 2018-12-28 一种基于Websocket长连接的数据处理方法及系统 Active CN109561159B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811622417.6A CN109561159B (zh) 2018-12-28 2018-12-28 一种基于Websocket长连接的数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811622417.6A CN109561159B (zh) 2018-12-28 2018-12-28 一种基于Websocket长连接的数据处理方法及系统

Publications (2)

Publication Number Publication Date
CN109561159A CN109561159A (zh) 2019-04-02
CN109561159B true CN109561159B (zh) 2021-08-31

Family

ID=65871829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811622417.6A Active CN109561159B (zh) 2018-12-28 2018-12-28 一种基于Websocket长连接的数据处理方法及系统

Country Status (1)

Country Link
CN (1) CN109561159B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835797A (zh) * 2019-04-15 2020-10-27 阿里巴巴集团控股有限公司 一种数据处理方法、装置及设备
CN110808874B (zh) * 2019-10-25 2021-09-17 北京大米科技有限公司 一种跨机房服务监控方法、装置、存储介质及服务器
CN110971512A (zh) * 2019-12-09 2020-04-07 北京仿真中心 通信方法、系统
CN111405028B (zh) * 2020-03-12 2022-05-27 中国建设银行股份有限公司 信息处理方法、装置、服务器、电子设备和介质
CN115334090A (zh) * 2021-05-10 2022-11-11 株洲中车时代电气股份有限公司 数据的传输方法、装置、电子设备及存储介质
CN113687756A (zh) * 2021-08-24 2021-11-23 深圳康佳电子科技有限公司 一种多信息实时显示方法、系统及中控终端
CN114598689A (zh) * 2022-03-08 2022-06-07 深圳市火火兔智慧科技有限公司 Iot设备的交互方法、装置、计算机设备及存储介质
CN116055036B (zh) * 2022-12-08 2024-03-12 江苏拓米洛高端装备股份有限公司 非联网系统动态密码生成方法和非联网系统身份认证方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051715A (zh) * 2012-12-24 2013-04-17 东软熙康健康科技有限公司 一种向终端发布通知的方法、相关装置及系统
CN103124267A (zh) * 2013-02-07 2013-05-29 百度在线网络技术(北京)有限公司 通过移动终端进行登录/注册的方法、系统和云端服务器
CN104038381A (zh) * 2013-03-07 2014-09-10 腾讯科技(深圳)有限公司 应用的云测试方法、系统、客户端及服务器
CN104166809A (zh) * 2013-05-17 2014-11-26 广州杰赛科技股份有限公司 运行信息系统的控制方法及系统
CN105812402A (zh) * 2014-12-29 2016-07-27 腾讯科技(深圳)有限公司 基于物联网的文件传输方法和装置
CN107357720A (zh) * 2017-06-16 2017-11-17 广州云测信息技术有限公司 一种软件运行错误的测试方法及系统
CN108650212A (zh) * 2018-03-14 2018-10-12 北京云信万致科技有限公司 一种物联网认证和访问控制方法及物联网安全网关系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051715A (zh) * 2012-12-24 2013-04-17 东软熙康健康科技有限公司 一种向终端发布通知的方法、相关装置及系统
CN103124267A (zh) * 2013-02-07 2013-05-29 百度在线网络技术(北京)有限公司 通过移动终端进行登录/注册的方法、系统和云端服务器
CN104038381A (zh) * 2013-03-07 2014-09-10 腾讯科技(深圳)有限公司 应用的云测试方法、系统、客户端及服务器
CN104166809A (zh) * 2013-05-17 2014-11-26 广州杰赛科技股份有限公司 运行信息系统的控制方法及系统
CN105812402A (zh) * 2014-12-29 2016-07-27 腾讯科技(深圳)有限公司 基于物联网的文件传输方法和装置
CN107357720A (zh) * 2017-06-16 2017-11-17 广州云测信息技术有限公司 一种软件运行错误的测试方法及系统
CN108650212A (zh) * 2018-03-14 2018-10-12 北京云信万致科技有限公司 一种物联网认证和访问控制方法及物联网安全网关系统

Also Published As

Publication number Publication date
CN109561159A (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
CN109561159B (zh) 一种基于Websocket长连接的数据处理方法及系统
CN110913000A (zh) 业务信息的处理方法、系统和计算机可读存储介质
EP3402136B1 (en) Information interaction method, client and device
US7961701B2 (en) Method and system for event polling
US8769262B2 (en) VPN connection system and VPN connection method
US20100180037A1 (en) Method and apparatus for optimizing and prioritizing the creation of a large number of VPN tunnels
EP3028437B1 (en) Messaging api over http protocol to establish context for data exchange
US8976814B2 (en) Method of transporting data from sending node to destination node
CN106713124A (zh) 一种基于mqtt和mysql的消息推送方法和系统
CN111510325A (zh) 报警信息推送方法、服务器、客户端及系统
KR100702704B1 (ko) 메신저를 이용한 알림 시스템 및 방법
CN112367146B (zh) 边缘侧消息的投递方法、装置和电子设备
CN101155079A (zh) 一种监控即时通讯服务器的方法、装置和系统
CN106790728A (zh) 消息推送方法和系统
CN107147561B (zh) 一种基于xmpp协议的即时通讯方法及系统
CN110324302B (zh) 一种iot设备通信方法
US20110202592A1 (en) Use of Multiple Connections to Extend RADIUS Identifier Space
CN107547615B (zh) 一种远程管理方法及装置
CN106101267A (zh) 一种跨网段文件传输系统及方法
KR101527196B1 (ko) 양방향 푸시 메시지 서비스 시스템 및 제어 방법
CN106789864B (zh) 一种报文防攻击方法及装置
CN114024712B (zh) 一种认证方法、装置、计算机设备以及存储介质
CN117201605A (zh) 一种基于h5的小程序客户端用户会话实现方法及系统
KR101328028B1 (ko) 세션 기반 메시지 전송 시스템 및 그 방법
CN110071864A (zh) 一种消息发送方法及装置

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
CB02 Change of applicant information

Address after: Room 2002, No.8, Chengyi North Street, phase III, software park, Xiamen City, Fujian Province

Applicant after: Xiamen entropy based biometrics information technology Co.,Ltd.

Address before: Room 2002, No.8, Chengyi North Street, phase III, software park, Xiamen City, Fujian Province

Applicant before: XIAMEN ZKTECO INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant