CN110138858A - 一种基于Websocket的任务管理***及方法 - Google Patents

一种基于Websocket的任务管理***及方法 Download PDF

Info

Publication number
CN110138858A
CN110138858A CN201910399088.1A CN201910399088A CN110138858A CN 110138858 A CN110138858 A CN 110138858A CN 201910399088 A CN201910399088 A CN 201910399088A CN 110138858 A CN110138858 A CN 110138858A
Authority
CN
China
Prior art keywords
task
client
server
websocket
sent
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.)
Pending
Application number
CN201910399088.1A
Other languages
English (en)
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.)
Beijing Jess Safety Technology Co Ltd
Original Assignee
Beijing Jess Safety 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 Beijing Jess Safety Technology Co Ltd filed Critical Beijing Jess Safety Technology Co Ltd
Priority to CN201910399088.1A priority Critical patent/CN110138858A/zh
Publication of CN110138858A publication Critical patent/CN110138858A/zh
Pending legal-status Critical Current

Links

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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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
    • 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/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于Websocket的任务管理***及方法,包括:任务管理接口模块,用于向服务器提供RESTful API接口,用于添加、删除任务,查询任务执行情况;任务处理模块,用于根据业务需求,向客户端添加任务处理逻辑;Websocket接口模块,用于通过Websocket协议建立服务器与客户端的连接关系;用于辅助服务器向客户端发送任务,接收并向服务器发送由客户端发送的任务执行结果。本发明利用Websocket协议进行网络任务管理,通过一个连接来发送和接收任务或消息,不需要客户端重新建立连接,有效提高任务管理效率。

Description

一种基于Websocket的任务管理***及方法
技术领域
本发明涉及网络任务管理技术领域,具体涉及一种基于Websocket的任务管理***及方法。
背景技术
在C/S(Client/Server)架构场景中,借助第三方消息队列产品实现服务器发布任务或消息给客户端,第三方消息队列产品包括RabbitMQ、kafka、ZooKeeper等,通过这些软件,服务器将任务下发给客户端,客户端完成任务执行后再和服务器建立新的连接,用来返回任务的执行结果。该过程中常用的任务分发架构包括三种,第一种是推送模式,即当有任务需要发布时,服务器主动发起和客户端的连接,将任务下发;第二种是拉模式,即客户端定期连接服务器,查询是否有需要发给自己的任务,若是则取回任务开始执行,否则等待下一次查询;第三种是长轮询,这种方式也是由客户端向服务器发起连接,和拉模式不同的是,即使没有需要发给客户端的任务,连接也不中断,直到有任务需要发给客户端时,服务器再返回数据,并关闭连接。
上述三种架构,推送模式需要客户端主动打开一个端口进行监听,会增加客户端的安全风险,同时如果客户端在NAT等网络设备后面,则无法进行工作;拉模式虽然避免了推送模式的弱点,但需要客户端定期去服务器查询,当客户端数量很多时,这种频繁的查询会增加服务器的压力;长轮询在拉模式上进行了改进,减少了很多不必要的查询请求次数,但同样需要客户端在完成任务执行后再发起一个连接向服务器返回执行结果。综上,现有技术中缺少一种长连接模式的网络任务管理方法。
发明内容
针对上述现有技术中的缺陷,本发明提供一种基于Websocket的任务管理***及方法,用于C/S模式下,服务器向指定的一个或多个客户端发布任务,并等待客户端完成任务执行后的返回结果。
本发明具体包括:
一种基于Websocket的任务管理***,包括:
任务管理接口模块,用于向服务器提供RESTful API接口,用于添加、删除任务,查询任务执行情况;
任务处理模块,用于根据业务需求,向客户端添加任务处理逻辑;例如,对于正在执行任务的客户端,在当前任务执行结束后才能下发新的任务;
Websocket接口模块,用于通过Websocket协议建立服务器与客户端的连接关系;用于辅助服务器向客户端发送任务,接收并向服务器发送由客户端发送的任务执行结果;
所述服务器和客户端均可以为多个。
进一步地,还包括数据存储模块,所述数据存储模块与所述任务处理模块进行数据对接,所述任务处理模块与所述Websocket接口模块进行数据对接,具体为:
在所述Websocket接口模块向客户端发送任务前,所述任务处理模块先将所述任务保存进所述数据存储模块,再将所述任务发送给所述Websocket接口模块;
所述Websocket接口模块接收并向服务器发送由客户端发送的任务执行结果的同时,将所述任务执行结果发送给所述任务处理模块,再由所述任务处理模块将所述执行结果保存进所述数据存储模块;
所述数据存储模块基于MySQL数据库,由于每次任务下发之前,都会先保存到数据库,所以在出现service或服务器重启等情况时,可以从数据库中获取已收取但未下发的任务,进行重新发送,保证了任务处理过程的持续和持久化。
进一步地,通过所述Websocket接口模块将任务发送给客户端时,所述Websocket接口模块还用于:
判断所述客户端与所述服务器连接是否正常,若是则将所述任务直接发送给所述客户端;
否则当监控到所述客户端与所述服务器正常连接后,向所述任务处理模块发送查询待发送任务的请求,并接收由所述任务处理模块返回的查询数据,根据所述查询数据向所述客户端发送任务;
所述查询数据为所述客户端待执行的任务,由所述任务处理模块根据所述查询待发送任务的请求,在所述数据存储模块中查询得到的;
由于任务下发前会保存在数据库中,所以如果客户端已离线,但有任务需要发下时,任务也不会丢,当客户端重新与服务器连接后,可在数据库中查询待下发任务进行重新下发,确保任务的正常送达。
进一步地,还包括执行时间监控模块,该模块可单独部署,也可集成在所述任务处理模块中,具体用于:
在所述Websocket接口模块将任务发送给客户端后,开始计时,判断所述Websocket接口模块是否在预设时间内接收到了由所述客户端发送的任务执行结果,若是则关闭计时;否则视为所述客户端执行任务超时,并向所述任务处理模块反馈超时信息;
有些任务可能会在客户端执行较长时间才能返回执行结果,或者客户端在执行任务过程中会重启,所以需要对任务执行设置超时时间,再根据具体情况和设置来处理超时任务,例如继续等待或重新下发等。
进一步地,还包括身份验证模块,用于接收客户端发送的注册请求,并为客户端分配唯一标识符,所述标识符用于客户端与服务器连接时的身份验证;
或用于监控客户端与服务器的连接状态,当监控到至少两个客户端使用同一标识符与服务器连接时,使用Ping/Pong消息包验证相应连接是否均有效,若是,则分别向相应客户端发送重新注册的消息;否则删除无效的连接;
在任务管理中,需要标识每一个客户端,才能实现向指定的客户端发送任务,通常需要客户端在安装的过程中到服务器注册,为各客户端分别分配一个唯一标识符;在实际应用场景中,经常会有客户端使用克隆***,克隆后客户端上的配置信息等一模一样,便会出现多个客户端使用同一标识符进行连接的情况,此时向相应各客户端发送重新注册的信息,可以避免任务误发或任务泄露造成的安全隐患;同时,客户端因网络问题等原因中断与服务器的连接时,服务器可能不能第一时间检测到连接已中断,但客户端已检测到中断并重新连接,这时在服务器侧也会出现多个客户端使用同一标识符进行连接的情况,但和上面克隆的情况不同的是,此时只有一个连接是有效的;将这两种情况进行综合考虑,当监控到多个客户端使用同一标识符与服务器连接时,先判断连接是否均有效,再决定是否发送重新注册信息,充分解决重复客户端的问题,提高任务管理的安全性。
一种基于Websocket的任务管理方法,包括:
服务器与客户端通过Websocket协议进行连接;
所述服务器通过RESTful API接口对任务进行管理;
所述服务器通过Websocket接口向所述客户端发送待执行任务,并根据业务需求,向所述客户端添加任务处理逻辑;例如,对于正在执行任务的客户端,在当前任务执行结束后才能下发新的任务;
所述服务器通过所述Websocket接口接收由所述客户端发送的任务执行结果;
所述通过RESTful API接口对任务进行管理,包括:添加、删除任务,查询任务执行情况;所述服务器和客户端均可以为多个。
进一步地,所述服务器通过Websocket接口向所述客户端发送待执行任务前,还包括:
将所述待执行任务存进数据库;
所述服务器通过所述Websocket接口接收由所述客户端发送的任务执行结果的同时,所述方法还包括:
将所述执行结果存进所述数据库;
所述数据存储模块基于MySQL数据库,由于每次任务下发之前,都会先保存到数据库,所以在出现service或服务器重启等情况时,可以从数据库中获取已收取但未下发的任务,进行重新发送,保证了任务处理过程的持续和持久化。
进一步地,所述服务器通过Websocket接口向所述客户端发送待执行任务时,还包括:
判断所述客户端与所述服务器连接是否正常,若是则将所述待执行任务直接发送给所述客户端;
否则当监控到所述客户端与所述服务器正常连接后,向所述数据库发送查询待发送任务的请求,接收由所述数据库返回的待发送任务,并将所述待发送任务发送给所述客户端;
由于任务下发前会保存在数据库中,所以如果客户端已离线,但有任务需要发下时,任务也不会丢,当客户端重新与服务器连接后,可在数据库中查询待下发任务进行重新下发,确保任务的正常送达。
进一步地,所述服务器通过Websocket接口向所述客户端发送待执行任务后,还包括:
根据预设时间开始计时,判断所述服务器是否在预设时间内通过所述Websocket接口接收到了由所述客户端发送的任务执行结果,若是则关闭计时;否则视为所述客户端执行任务超时,并返回超时信息;
有些任务可能会在客户端执行较长时间才能返回执行结果,或者客户端在执行任务过程中会重启,所以需要对任务执行设置超时时间,再根据具体情况和设置来处理超时任务,例如继续等待或重新下发等。
进一步地,服务器与客户端通过Websocket协议进行连接时,还包括:
所述服务器接收所述客户端发送的注册请求,为所述客户端分配唯一标识符,所述标识符用于所述客户端与所述服务器连接时的身份验证;
或监控所述服务器与所述客户端的连接状态,当监控到至少两个客户端使用同一标识符与所述服务器连接时,使用Ping/Pong消息包验证相应连接是否均有效,若是,则分别向相应客户端发送重新注册的消息;否则删除无效的连接;
在任务管理中,需要标识每一个客户端,才能实现向指定的客户端发送任务,通常需要客户端在安装的过程中到服务器注册,为各客户端分别分配一个唯一标识符;在实际应用场景中,经常会有客户端使用克隆***,克隆后客户端上的配置信息等一模一样,便会出现多个客户端使用同一标识符进行连接的情况,此时向相应各客户端发送重新注册的信息,可以避免任务误发或任务泄露造成的安全隐患;同时,客户端因网络问题等原因中断与服务器的连接时,服务器可能不能第一时间检测到连接已中断,但客户端已检测到中断并重新连接,这时在服务器侧也会出现多个客户端使用同一标识符进行连接的情况,但和上面克隆的情况不同的是,此时只有一个连接是有效的;将这两种情况进行综合考虑,当监控到多个客户端使用同一标识符与服务器连接时,先判断连接是否均有效,再决定是否发送重新注册信息,充分解决重复客户端的问题,提高任务管理的安全性。
本发明的有益效果体现在:
本发明利用Websocket协议进行网络任务管理,Websocket协议可以建立长连接,通过一个连接来发送和接收任务或消息,不需要客户端重新建立连接,提高任务管理效率的同时,可有效对任务执行过程进行动态跟进,实时了解任务执行情况。进一步地,本发明解决了任务持久化、客户端离线处理、超时任务处理、重复客户端连接等问题,为网络任务管理提供综合性解决方案。同时,和直接使用TCP不同的是,Websocket可使用HTTP(S)协议,使本发明在实际应用中更容易部署,不需要打开HTTP(S)以外的额外端口。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
图1为本发明实施例一种基于Websocket的任务管理***结构图;
图2为本发明实施例另一种基于Websocket的任务管理***结构图;
图3为本发明实施例一种基于Websocket的任务管理方法流程图。
具体实施方式
下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
如图1所示,为本发明一种基于Websocket的任务管理***实施例,包括:
任务管理接口模块11,用于向服务器提供RESTful API接口,用于添加、删除任务,查询任务执行情况;
任务处理模块12,用于根据业务需求,向客户端添加任务处理逻辑;例如,对于正在执行任务的客户端,在当前任务执行结束后才能下发新的任务;
Websocket接口模块13,用于通过Websocket协议建立服务器与客户端的连接关系;用于辅助服务器向客户端发送任务,接收并向服务器发送由客户端发送的任务执行结果;
所述服务器和客户端均可以为多个。
优选地,如图2所示,还包括数据存储模块14,所述数据存储模块14与所述任务处理模块12进行数据对接,所述任务处理模块12与所述Websocket接口模块13进行数据对接,具体为:
在所述Websocket接口模块13向客户端发送任务前,所述任务处理模块12先将从所述任务管理接口模块11获取的任务保存进所述数据存储模块14,再将所述任务发送给所述Websocket接口模块13;
所述Websocket接口模块13接收并向服务器发送由客户端发送的任务执行结果的同时,将所述任务执行结果发送给所述任务处理模块12,再由所述任务处理模块12将所述执行结果保存进所述数据存储模块14,同时所述任务处理模块12将所述执行结果发送给所述任务管理接口模块11,由所述任务管理接口模块11将所述执行结果返回给所述服务器;
所述数据存储模块14基于MySQL数据库,由于每次任务下发之前,都会先保存到数据库,所以在出现service或服务器重启等情况时,可以从数据库中获取已收取但未下发的任务,进行重新发送,保证了任务处理过程的持续和持久化。
优选地,通过所述Websocket接口模块13将任务发送给客户端时,所述Websocket接口模块13还用于:
判断所述客户端与所述服务器连接是否正常,若是则将所述任务直接发送给所述客户端;
否则当监控到所述客户端与所述服务器正常连接后,向所述任务处理模块12发送查询待发送任务的请求,并接收由所述任务处理模块12返回的查询数据,根据所述查询数据向所述客户端发送任务;
所述查询数据为所述客户端待执行的任务,由所述任务处理模块12根据所述查询待发送任务的请求,在所述数据存储模块14中查询得到的;
由于任务下发前会保存在数据库中,所以如果客户端已离线,但有任务需要发下时,任务也不会丢,当客户端重新与服务器连接后,可在数据库中查询待下发任务进行重新下发,确保任务的正常送达。
优选地,还包括执行时间监控模块,该模块可单独部署,也可集成在所述任务处理模块12中,具体用于:
在所述Websocket接口模块13将任务发送给客户端后,开始计时,判断所述Websocket接口模块13是否在预设时间内接收到了由所述客户端发送的任务执行结果,若是则关闭计时;否则视为所述客户端执行任务超时,并向所述任务处理模块12反馈超时信息;
有些任务可能会在客户端执行较长时间才能返回执行结果,或者客户端在执行任务过程中会重启,所以需要对任务执行设置超时时间,再根据具体情况和设置来处理超时任务,例如继续等待或重新下发等。
优选地,还包括身份验证模块,用于接收客户端发送的注册请求,并为客户端分配唯一标识符,所述标识符用于客户端与服务器连接时的身份验证;
或用于监控客户端与服务器的连接状态,当监控到至少两个客户端使用同一标识符与服务器连接时,使用Ping/Pong消息包验证相应连接是否均有效,若是,则分别向相应客户端发送重新注册的消息;否则删除无效的连接;
在任务管理中,需要标识每一个客户端,才能实现向指定的客户端发送任务,通常需要客户端在安装的过程中到服务器注册,为各客户端分别分配一个唯一标识符;在实际应用场景中,经常会有客户端使用克隆***,克隆后客户端上的配置信息等一模一样,便会出现多个客户端使用同一标识符进行连接的情况,此时向相应各客户端发送重新注册的信息,可以避免任务误发或任务泄露造成的安全隐患;同时,客户端因网络问题等原因中断与服务器的连接时,服务器可能不能第一时间检测到连接已中断,但客户端已检测到中断并重新连接,这时在服务器侧也会出现多个客户端使用同一标识符进行连接的情况,但和上面克隆的情况不同的是,此时只有一个连接是有效的;将这两种情况进行综合考虑,当监控到多个客户端使用同一标识符与服务器连接时,先判断连接是否均有效,再决定是否发送重新注册信息,充分解决重复客户端的问题,提高任务管理的安全性。
如图3所示,为本发明一种基于Websocket的任务管理方法实施例,包括:
S31:服务器与客户端通过Websocket协议进行连接;
S32:所述服务器通过RESTful API接口对任务进行管理;
S33:所述服务器通过Websocket接口向所述客户端发送待执行任务,并根据业务需求,向所述客户端添加任务处理逻辑;例如,对于正在执行任务的客户端,在当前任务执行结束后才能下发新的任务;
S34:所述服务器通过所述Websocket接口接收由所述客户端发送的任务执行结果;
所述通过RESTful API接口对任务进行管理,包括:添加、删除任务,查询任务执行情况;所述服务器和客户端均可以为多个。
优选地,所述服务器通过Websocket接口向所述客户端发送待执行任务前,还包括:
将所述待执行任务存进数据库;
所述服务器通过所述Websocket接口接收由所述客户端发送的任务执行结果的同时,所述方法还包括:
将所述执行结果存进所述数据库;
所述数据存储模块基于MySQL数据库,由于每次任务下发之前,都会先保存到数据库,所以在出现service或服务器重启等情况时,可以从数据库中获取已收取但未下发的任务,进行重新发送,保证了任务处理过程的持续和持久化。
优选地,所述服务器通过Websocket接口向所述客户端发送待执行任务时,还包括:
判断所述客户端与所述服务器连接是否正常,若是则将所述待执行任务直接发送给所述客户端;
否则当监控到所述客户端与所述服务器正常连接后,向所述数据库发送查询待发送任务的请求,接收由所述数据库返回的待发送任务,并将所述待发送任务发送给所述客户端;
由于任务下发前会保存在数据库中,所以如果客户端已离线,但有任务需要发下时,任务也不会丢,当客户端重新与服务器连接后,可在数据库中查询待下发任务进行重新下发,确保任务的正常送达。
优选地,所述服务器通过Websocket接口向所述客户端发送待执行任务后,还包括:
根据预设时间开始计时,判断所述服务器是否在预设时间内通过所述Websocket接口接收到了由所述客户端发送的任务执行结果,若是则关闭计时;否则视为所述客户端执行任务超时,并返回超时信息;
有些任务可能会在客户端执行较长时间才能返回执行结果,或者客户端在执行任务过程中会重启,所以需要对任务执行设置超时时间,再根据具体情况和设置来处理超时任务,例如继续等待或重新下发等。
优选地,服务器与客户端通过Websocket协议进行连接时,还包括:
所述服务器接收所述客户端发送的注册请求,为所述客户端分配唯一标识符,所述标识符用于所述客户端与所述服务器连接时的身份验证;
或监控所述服务器与所述客户端的连接状态,当监控到至少两个客户端使用同一标识符与所述服务器连接时,使用Ping/Pong消息包验证相应连接是否均有效,若是,则分别向相应客户端发送重新注册的消息;否则删除无效的连接;
在任务管理中,需要标识每一个客户端,才能实现向指定的客户端发送任务,通常需要客户端在安装的过程中到服务器注册,为各客户端分别分配一个唯一标识符;在实际应用场景中,经常会有客户端使用克隆***,克隆后客户端上的配置信息等一模一样,便会出现多个客户端使用同一标识符进行连接的情况,此时向相应各客户端发送重新注册的信息,可以避免任务误发或任务泄露造成的安全隐患;同时,客户端因网络问题等原因中断与服务器的连接时,服务器可能不能第一时间检测到连接已中断,但客户端已检测到中断并重新连接,这时在服务器侧也会出现多个客户端使用同一标识符进行连接的情况,但和上面克隆的情况不同的是,此时只有一个连接是有效的;将这两种情况进行综合考虑,当监控到多个客户端使用同一标识符与服务器连接时,先判断连接是否均有效,再决定是否发送重新注册信息,充分解决重复客户端的问题,提高任务管理的安全性。
本发明利用Websocket协议进行网络任务管理,Websocket协议可以建立长连接,通过一个连接来发送和接收任务或消息,不需要客户端重新建立连接,提高任务管理效率的同时,可有效对任务执行过程进行动态跟进,实时了解任务执行情况。进一步地,本发明解决了任务持久化、客户端离线处理、超时任务处理、重复客户端连接等问题,为网络任务管理提供综合性解决方案。同时,和直接使用TCP不同的是,Websocket可使用HTTP(S)协议,使本发明在实际应用中更容易部署,不需要打开HTTP(S)以外的额外端口。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种基于Websocket的任务管理***,其特征在于,包括:
任务管理接口模块,用于向服务器提供RESTful API接口,用于添加、删除任务,查询任务执行情况;
任务处理模块,用于根据业务需求,向客户端添加任务处理逻辑;
Websocket接口模块,用于通过Websocket协议建立服务器与客户端的连接关系;用于辅助服务器向客户端发送任务,接收并向服务器发送由客户端发送的任务执行结果。
2.如权利要求1所述的***,其特征在于,还包括数据存储模块,所述数据存储模块与所述任务处理模块进行数据对接,所述任务处理模块与所述Websocket接口模块进行数据对接,具体为:
在所述Websocket接口模块向客户端发送任务前,所述任务处理模块先将所述任务保存进所述数据存储模块,再将所述任务发送给所述Websocket接口模块;
所述Websocket接口模块接收并向服务器发送由客户端发送的任务执行结果的同时,将所述任务执行结果发送给所述任务处理模块,再由所述任务处理模块将所述执行结果保存进所述数据存储模块。
3.如权利要求2所述的***,其特征在于,通过所述Websocket接口模块将任务发送给客户端时,所述Websocket接口模块还用于:
判断所述客户端与所述服务器连接是否正常,若是则将所述任务直接发送给所述客户端;
否则当监控到所述客户端与所述服务器正常连接后,向所述任务处理模块发送查询待发送任务的请求,并接收由所述任务处理模块返回的查询数据,根据所述查询数据向所述客户端发送任务;
所述查询数据为所述客户端待执行的任务,由所述任务处理模块根据所述查询待发送任务的请求,在所述数据存储模块中查询得到的。
4.如权利要求3所述的***,其特征在于,还包括执行时间监控模块,具体用于:
在所述Websocket接口模块将任务发送给客户端后,开始计时,判断所述Websocket接口模块是否在预设时间内接收到了由所述客户端发送的任务执行结果,若是则关闭计时;否则视为所述客户端执行任务超时,并向所述任务处理模块反馈超时信息。
5.如权利要求4所述的***,其特征在于,还包括身份验证模块,用于接收客户端发送的注册请求,并为客户端分配唯一标识符,所述标识符用于客户端与服务器连接时的身份验证;
或用于监控客户端与服务器的连接状态,当监控到至少两个客户端使用同一标识符与服务器连接时,使用Ping/Pong消息包验证相应连接是否均有效,若是,则分别向相应客户端发送重新注册的消息;否则删除无效的连接。
6.一种基于Websocket的任务管理方法,其特征在于,包括:
服务器与客户端通过Websocket协议进行连接;
所述服务器通过RESTful API接口对任务进行管理;
所述服务器通过Websocket接口向所述客户端发送待执行任务,并根据业务需求,向所述客户端添加任务处理逻辑;
所述服务器通过所述Websocket接口接收由所述客户端发送的任务执行结果;
所述通过RESTful API接口对任务进行管理,包括:添加、删除任务,查询任务执行情况。
7.如权利要求6所述的方法,其特征在于,所述服务器通过Websocket接口向所述客户端发送待执行任务前,所述方法还包括:
将所述待执行任务存进数据库;
所述服务器通过所述Websocket接口接收由所述客户端发送的任务执行结果的同时,所述方法还包括:
将所述执行结果存进所述数据库。
8.如权利要求7所述的方法,其特征在于,所述服务器通过Websocket接口向所述客户端发送待执行任务时,所述方法还包括:
判断所述客户端与所述服务器连接是否正常,若是则将所述待执行任务直接发送给所述客户端;
否则当监控到所述客户端与所述服务器正常连接后,向所述数据库发送查询待发送任务的请求,接收由所述数据库返回的待发送任务,并将所述待发送任务发送给所述客户端。
9.如权利要求8所述的方法,其特征在于,所述服务器通过Websocket接口向所述客户端发送待执行任务后,所述方法还包括:
根据预设时间开始计时,判断所述服务器是否在预设时间内通过所述Websocket接口接收到了由所述客户端发送的任务执行结果,若是则关闭计时;否则视为所述客户端执行任务超时,并返回超时信息。
10.如权利要求9所述的方法,其特征在于,服务器与客户端通过Websocket协议进行连接时,所述方法还包括:
所述服务器接收所述客户端发送的注册请求,为所述客户端分配唯一标识符,所述标识符用于所述客户端与所述服务器连接时的身份验证;
或监控所述服务器与所述客户端的连接状态,当监控到至少两个客户端使用同一标识符与所述服务器连接时,使用Ping/Pong消息包验证相应连接是否均有效,若是,则分别向相应客户端发送重新注册的消息;否则删除无效的连接。
CN201910399088.1A 2019-05-14 2019-05-14 一种基于Websocket的任务管理***及方法 Pending CN110138858A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910399088.1A CN110138858A (zh) 2019-05-14 2019-05-14 一种基于Websocket的任务管理***及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910399088.1A CN110138858A (zh) 2019-05-14 2019-05-14 一种基于Websocket的任务管理***及方法

Publications (1)

Publication Number Publication Date
CN110138858A true CN110138858A (zh) 2019-08-16

Family

ID=67573983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910399088.1A Pending CN110138858A (zh) 2019-05-14 2019-05-14 一种基于Websocket的任务管理***及方法

Country Status (1)

Country Link
CN (1) CN110138858A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949918A (zh) * 2020-08-23 2020-11-17 云知声智能科技股份有限公司 基于分布式环境下的websocket连接优化方法及***
CN112671634A (zh) * 2020-12-21 2021-04-16 中电福富信息科技有限公司 基于websocket的工程现场管理通讯方法
CN114598689A (zh) * 2022-03-08 2022-06-07 深圳市火火兔智慧科技有限公司 Iot设备的交互方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137288B2 (en) * 2010-12-20 2015-09-15 Yahoo! Inc. Scalable push-based architecture for web applications
CN105577605A (zh) * 2014-10-09 2016-05-11 阿尔卡特朗讯 网页实时通信中采用基于WebSocket协议的双向REST的方法与服务器
CN106713497A (zh) * 2017-01-24 2017-05-24 郑州云海信息技术有限公司 一种服务器端消息推送装置、方法及消息推送***
CN109361770A (zh) * 2018-12-11 2019-02-19 苏州创旅天下信息技术有限公司 基于WebSocket和消息队列实现双向实时通信的***及方法
CN109660617A (zh) * 2018-12-18 2019-04-19 中电科华云信息技术有限公司 一种基于服务器集群的消息推送方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137288B2 (en) * 2010-12-20 2015-09-15 Yahoo! Inc. Scalable push-based architecture for web applications
CN105577605A (zh) * 2014-10-09 2016-05-11 阿尔卡特朗讯 网页实时通信中采用基于WebSocket协议的双向REST的方法与服务器
CN106713497A (zh) * 2017-01-24 2017-05-24 郑州云海信息技术有限公司 一种服务器端消息推送装置、方法及消息推送***
CN109361770A (zh) * 2018-12-11 2019-02-19 苏州创旅天下信息技术有限公司 基于WebSocket和消息队列实现双向实时通信的***及方法
CN109660617A (zh) * 2018-12-18 2019-04-19 中电科华云信息技术有限公司 一种基于服务器集群的消息推送方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
丁磊: "基于Websocket的消息推送***设计与事件匹配技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949918A (zh) * 2020-08-23 2020-11-17 云知声智能科技股份有限公司 基于分布式环境下的websocket连接优化方法及***
CN111949918B (zh) * 2020-08-23 2024-03-08 云知声智能科技股份有限公司 基于分布式环境下的websocket连接优化方法及***
CN112671634A (zh) * 2020-12-21 2021-04-16 中电福富信息科技有限公司 基于websocket的工程现场管理通讯方法
CN114598689A (zh) * 2022-03-08 2022-06-07 深圳市火火兔智慧科技有限公司 Iot设备的交互方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN110138858A (zh) 一种基于Websocket的任务管理***及方法
EP1619855B1 (en) System and method for managing and checking socket connections between a server and clients.
CN102209047B (zh) 一种信息共享的即时通讯***及方法
CN105120005B (zh) 一种游戏服务器热更新方法、服务器及***
CN107592215A (zh) 一种管理消息中间件的方法
CN101009649A (zh) 网络处理器中的队列管理
CN109766201A (zh) 任务分发方法、服务器、客户端和***
CN109491895A (zh) 服务器压力测试方法及装置
US8787213B2 (en) Correlating calls after a referral
US11677876B2 (en) Techniques for sharing control of assigning tasks between an external pairing system and a task assignment system with an internal pairing system
CN106231235B (zh) 一种受限环境下远程视频会见方法及***
Zato et al. Platform for building large-scale agent-based systems
CN108632136A (zh) 巡河数据处理方法及装置
CN104243473B (zh) 一种数据传输的方法以及装置
CN109474670A (zh) 一种信息交互方法及***
WO2012159537A1 (zh) 一种用户信息共享的即时通讯***及方法
CN102209049A (zh) 一种用户信息处理的即时通讯***及方法
CN105335362B (zh) 实时数据的处理方法及***、即时处理***
CN103618665A (zh) 一种向客户端推送消息的方法
CN106102126B (zh) 一种接入控制方法及装置
CN103563305A (zh) 提供推送服务以减小网络负载的***和方法
CN109471745A (zh) 基于服务器集群的宕机服务器任务处理方法及***
CN104714783A (zh) 任务处理方法及装置
CN107291383A (zh) 一种嵌入式设备的数据交互方法及服务器
CN110262882A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190816