CN110958240A - 消息订阅系统及方法 - Google Patents
消息订阅系统及方法 Download PDFInfo
- Publication number
- CN110958240A CN110958240A CN201911179415.9A CN201911179415A CN110958240A CN 110958240 A CN110958240 A CN 110958240A CN 201911179415 A CN201911179415 A CN 201911179415A CN 110958240 A CN110958240 A CN 110958240A
- Authority
- CN
- China
- Prior art keywords
- socket
- client
- channel
- server
- newly added
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种消息订阅系统及方法,该系统包括:服务端,用于根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件;向配置同步的socket通道中发布新增socket通道的配置信息;将消息事件发布至socket服务端中;客户端,用于在配置同步的socket通道接收到新增socket通道的配置信息后,利用socket客户端代码模板生成第二JAVA文件;建立订阅的socket通道中socket客户端与socket服务端的连接;接收并消费订阅的socket通道中socket客户端接收到的消息事件。本发明可以实现跨系统的消息订阅,效率高,节省资源。
Description
技术领域
本发明涉及互联网领域,尤其涉及一种消息订阅系统及方法。
背景技术
近几年,随着通信和网络技术的发展,基于网络环境下系统或平台之间信息传递与共享的需求也随之迅猛增长,然而不同的系统之间使用不同的数据组织形式和操作系统平台,加上应用不同所造成的数据不一致性,为实现系统间的消息递送与接收,其相应的消息互通或订阅方案随着开发技术支持的发展,也出现各种不同的解决方案。
软件接口是跨系统间信息交互的桥梁,在不同系统之间,根据系统的关联程度的不同,采用不同交互方式,利用高效可靠的消息传递机制进行与系统或平台之间的数据通信,并通过数据通信来进行消息互通或订阅。例如服务接口或中间件,通过消息中间件可以很容易的实现系统的伸缩性和扩展性。
在目前的应用中,Socket/消息队列(Message Queue)/WebService接口等是较常见的应用。虽然操作方案已经很成熟,但仍然存在缺陷,例如通过web服务接口或者通过消息中间件(如:rabbitMq、Kafka等)来实现,在系统新增一个消息时均需要开发介入,同时使用消息中间件还需要在项目中引入第三方系统等,增加部署和实施的成本及复杂度。
随着TCP/IP网络的发展,Socket成为最为通用的应用程序接口,也是在Internet上进行应用开发最为通用的API,基于Socket的浏览器的进程与服务器通信时,服务器端先初始化Socket,然后与客户端口绑定形成对应关系,并对客户端端口进行监听(listen),等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。
上述基于Socket的浏览器的进程与服务器通信的缺点是:Socket应用于消息交互订阅时,在客户端向服务器发起一个消息请求,服务器端与客户端均需要建立消息交互通道,增加新的消息渠道就需要新增一个通道,使得系统必须进行一次新代码开发以实现消息送达,也使得客户端与服务器端的消息订阅受限于一对一的订阅服务。若客户端并发大量消息订阅请求,即存在跨系统的消息订阅请求时,信息互通效率将受到很大影响。而为了解决这一问题,现有技术需引入第三方系统或需要二次开发介入,导致系统信息互通产生资源消耗以及系统信息互通效率低。
发明内容
本发明实施例提出一种消息订阅系统,用以实现跨系统的消息订阅,效率高,节省资源,该系统包括:
服务端,用于根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;向配置同步的socket通道中发布新增socket通道的配置信息;将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中;
客户端,用于在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;建立订阅的socket通道中socket客户端与socket服务端的连接;接收并消费订阅的socket通道中socket客户端接收到的消息事件。
本发明实施例提出一种消息订阅方法,用以实现跨系统的消息订阅,效率高,节省资源,该方法包括:
根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;
向配置同步的socket通道中发布新增socket通道的配置信息,客户端根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;
将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中,客户端在建立订阅的socket通道中socket客户端与socket服务端的连接后,接收并消费订阅的socket通道中socket客户端接收到的消息事件。
本发明实施例提出一种消息订阅方法,用以实现跨系统的消息订阅,效率高,节省资源,该方法包括:
在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;服务端根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,并向配置同步的socket通道中发布新增socket通道的配置信息,所述第一JAVA文件包括新增socket通道的socket服务端;
建立订阅的socket通道中socket客户端与socket服务端的连接;
接收并消费订阅的socket通道中socket客户端接收到的消息事件,所述消息事件是服务端发送至与socket客户端建立连接的socket服务端的。
本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述消息订阅方法。
本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述消息订阅方法的计算机程序。
在本发明实施例中,服务端,用于根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;向配置同步的socket通道中发布新增socket通道的配置信息;将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中;客户端,用于在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;建立订阅的socket通道中socket客户端与socket服务端的连接;接收并消费订阅的socket通道中socket客户端接收到的消息事件。在上述过程中,是利用socket服务端代码模板生成新增socket通道的第一JAVA文件的,且是根据利用socket客户端代码模板生成第二JAVA文件的,第一JAVA文件和第二JAVA文件包括了新增socket通道的socket服务端和socket客户端,即在实现新增socket通道的时,只需要socket服务端代码模板和socket客户端代码模板即可,无需引入第三方系统或需要二次开发介入,效率高,节省资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中消息订阅系统的示意图;
图2为本发明实施例提出的应用消息订阅系统进行消息订阅的详细流程图;
图3为消息订阅系统进行订阅的示意图;
图4为本发明实施例提出的消息订阅方法的流程图;
图5为本发明实施例提出的另一种消息订阅方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
图1为本发明实施例中消息订阅系统的示意图,如图1所示,该系统包括:
服务端,用于根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;向配置同步的socket通道中发布新增socket通道的配置信息;将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中;
客户端,用于在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;建立订阅的socket通道中socket客户端与socket服务端的连接;接收并消费订阅的socket通道中socket客户端接收到的消息事件。
在本发明实施例中,是利用socket服务端代码模板生成新增socket通道的第一JAVA文件的,且是根据利用socket客户端代码模板生成第二JAVA文件的,第一JAVA文件和第二JAVA文件包括了新增socket通道的socket服务端和socket客户端,即在实现新增socket通道的时,只需要socket服务端代码模板和socket客户端代码模板即可,无需引入第三方系统或需要二次开发介入,效率高,节省资源。
具体实施时,本发明提出的消息订阅系统是一种轻量的消息订阅系统,基于socket的基础应用,应用浏览器前后端的消息互通甚至是实现跨系统间服务端与客户端之间的消息订阅。具体包括两大块,第一块是配置过程,第二块是运行过程。在配置过程中,服务端提供socket通道配置功能,当需要增加一类新的socket通道时,可以使用该socket通道配置功能新增一个socket通道,一个socket通道包括一个socket服务端和一个socket客户端。服务端包括一个用socket服务端代码模板和一个配置同步的socket通道的socket服务端,客户端包括一个socket客户端代码模板和一个配置同步的socket通道的socket客户端。
在一实施例中,客户端还用于:在配置同步的socket通道的socket客户端与socket服务端建立连接后,向服务端发送新增socket通道请求;
服务端还用于:在接收到客户端发送的新增socket通道请求后,获取用户输入的新增socket通道的配置信息。
在上述实施例中,首先,配置同步的socket通道的socket客户端与socket服务端应该先建立连接,然后,客户端向服务端发送新增socket通道请求,服务端在接收到客户端发送的新增socket通道请求后,获取用户输入的新增socket通道的配置信息,然后利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端,并向配置同步的socket通道中发布新增socket通道的配置信息。而在配置过程中,客户端由于包括一个配置同步的socket通道的socket客户端,配置同步的socket通道接收到新增socket通道的配置信息最终发送至socket客户端,然后客户端根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端。
实际上,第一JAVA文件是利用socket服务端代码模板生成的,替换了上述模板中的部分变量,使得生成新增socket通道的socket服务端时,动态替换上述模板中的变量,而不需二次开发。新增socket通道的socket客户端的原理与上述相同,由于避免了二次开发,从而使得本发明实施例进行消息订阅的效率明显增加。
在运行过程,首先,客户端获取客户订阅的socket通道,然后建立订阅的socket通道中socket客户端与socket服务端的连接,除此之外,一些没有被订阅的socket通道可能也建立连接了;服务端能够获得已经建立连接的socket通道(包括socket客户端与socket服务端),因此,服务端是将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中;这些消息事件通过已经建立连接的socket通道发送至socket客户端,客户端即接收了这些消息事件,然后客户端判断socket客户端对应的socket通道是否是订阅了的,如果是,则对这些消息事件进行消费,例如将这些消息事件推送给指定的信息消费类等,如果不是,则丢弃这些消息事件。
在一实施例中,服务端还用于:将所述第一JAVA文件通过classLoad加载至服务端的虚拟机中;
客户端还用于:将所述第二JAVA文件通过classLoad加载至客户端的虚拟机中。
在上述实施例中,将所述第一JAVA文件通过classLoad加载至服务端的虚拟机中,从而获得了新增socket通道的socket服务端,且加载至服务端的虚拟机中节约了服务端的内存资源;同样,将所述第二JAVA文件通过classLoad加载至客户端的虚拟机中,从而获得了新增socket通道的socket客户端,节约了客户端的内存资源。
在一实施例中,服务端还用于:在启动时,根据服务端中已实现的socket通道的配置信息,利用socket服务端代码模板生成第三JAVA文件,所述第三JAVA文件包括已实现的socket通道的socket服务端;
客户端还用于:在启动时,根据客户端中已实现的socket通道的配置信息,利用socket客户端代码模板生成第四JAVA文件,所述第四JAVA文件包括已实现的socket通道的socket客户端。
在上述实施例中,在启动时,自动检测服务端之前已经实现的socket通道的配置信息,如果存在,则根据服务端中已实现的socket通道的配置信息,利用socket服务端代码模板生成第三JAVA文件,所述第三JAVA文件包括已实现的socket通道的socket服务端。客户端同理,这样可以实现服务端和客户端启动时,完成对已实现的socket通道的配置信息的处理,即完成这类的socket通道配置。
在一实施例中,客户端还用于:在启动时,建立已订阅的socket通道中socket客户端与socket服务端的连接。
在上述实施例中,客户端在启动时,检查客户之前已订阅的socket通道,自动建立已订阅的socket通道中socket客户端与socket服务端的连接,从而可自动接收服务端发布的消息事件,避免消息事件的丢失。
在一实施例中,客户端还用于:
在建立订阅的socket通道中socket客户端与socket服务端的连接之前,接收用户输入的订阅的socket通道;
从所述订阅的socket通道中解析出待建立连接的socket客户端和socket服务端。
在上述实施例中,针对的是新接收用户的订阅的socket通道时的情况,从所述订阅的socket通道中解析出待建立连接的socket客户端和socket服务端,然后再建立订阅的socket通道中socket客户端与socket服务端的连接。
基于上述实施例,本发明提出如下一个实施例来说明应用消息订阅系统进行消息订阅的详细流程,图2为本发明实施例提出的应用消息订阅系统进行消息订阅的详细流程图,如图2所示,服务端的流程包括:
预先配置socket服务端代码模板;
配置同步的socket通道的socket服务端;
在接收到客户端发送的新增socket通道请求后,获取用户输入的新增socket通道的配置信息;根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;或者启动时根据服务端中已实现的socket通道的配置信息,利用socket服务端代码模板生成第三JAVA文件,所述第三JAVA文件包括已实现的socket通道的socket服务端;
将所述第一JAVA文件或第三JAVA文件通过classLoad加载至服务端的虚拟机中;
向配置同步的socket通道中发布新增socket通道的配置信息;
将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中;
在消息事件发送完后,关闭socket通道。
如图2所示,客户端的流程包括:
预先配置socket客户端代码模板;
配置同步的socket通道的socket客户端;
在配置同步的socket通道的socket客户端与socket服务端建立连接后,向服务端发送新增socket通道请求;
在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件;或者在启动时,根据客户端中已实现的socket通道的配置信息,利用socket客户端代码模板生成第四JAVA文件;
将所述第二JAVA文件或第四JAVA文件通过classLoad加载至客户端的虚拟机中;
接收用户输入的订阅的socket通道,从所述订阅的socket通道中解析出待建立连接的socket客户端和socket服务端,建立订阅的socket通道中socket客户端与socket服务端的连接;或者在启动时建立已订阅的socket通道中socket客户端与socket服务端的连接;
接收并消费订阅的socket通道中socket客户端接收到的消息事件;
在消息事件接收完后,关闭socket通道。
当然,可以理解的是,上述应用消息订阅系统进行消息订阅的详细流程还可以有其他变化例,相关变化例均应落入本发明的保护范围。
下面给出一具体实施例,来说明本发明提出的消息订阅系统的具体应用。
图3为消息订阅系统进行订阅的示意图,包括一个服务端两个客户端,其中,服务端包括一个消息队列,消息队列里有多个消息事件,客户端Client_1,请求页面包含请求页面A和请求页面B,请求页面A新增的请求消息内容为a1,a2;请求页面B新增的请求消息内容为b1,b2,b3;此时如若参照传统socket收发数据的方法,对于请求页面A,需要新增2条socket通道,来实现请求页面A的消息发送与接收,对于开发者而言需要人工新增两组socket通道对应的代码,效率低。
而在本发明中,服务端预先配置socket服务端代码模板;配置同步的socket通道的socket服务端。客户端Client_1预先配置socket客户端代码模板;配置同步的socket通道的socket客户端。客户端Client_1在配置同步的socket通道的socket客户端与socket服务端建立连接后,向服务端发送新增socket通道请求;然后,服务端在接收到客户端Client_1发送的新增socket通道请求后,获取用户输入的新增socket通道的配置信息;根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,将所述第一JAVA文件或第三JAVA文件通过classLoad加载至服务端的虚拟机中;向配置同步的socket通道中发布新增socket通道的配置信息。客户端Client_1接收用户输入的订阅的socket通道,从所述订阅的socket通道中解析出待建立连接的socket客户端和socket服务端,建立订阅的socket通道中socket客户端与socket服务端的连接。
后续,客户端将运行时产生的消息事件a1消息、a2消息、b1消息、b2消息、b3消息发布至与socket客户端建立连接的socket服务端中。客户端Client_1接收a1消息、a2消息、b1消息、b2消息、b3消息,并将a1消息、a2消息发送至A页面订阅消费类,将b1消息、b2消息、b3消息发布至B页面订阅消费类。
最后服务端在消息事件发送完后,关闭socket通道。客户端Client_1在消息事件接收完后,关闭socket通道。
综上所述,在本发明实施例提出的系统中,服务端,用于根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;向配置同步的socket通道中发布新增socket通道的配置信息;将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中;客户端,用于在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;建立订阅的socket通道中socket客户端与socket服务端的连接;接收并消费订阅的socket通道中socket客户端接收到的消息事件。在上述过程中,是利用socket服务端代码模板生成新增socket通道的第一JAVA文件的,且是根据利用socket客户端代码模板生成第二JAVA文件的,第一JAVA文件和第二JAVA文件包括了新增socket通道的socket服务端和socket客户端,即在实现新增socket通道的时,只需要socket服务端代码模板和socket客户端代码模板即可,无需引入第三方系统或需要二次开发介入,效率高,节省资源。
本发明实施例提出一种消息订阅方法,图4为本发明实施例提出的消息订阅方法的流程图,如图4所示,该方法包括:
步骤401,根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;
步骤402,向配置同步的socket通道中发布新增socket通道的配置信息,客户端根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;
步骤403,将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中,客户端在建立订阅的socket通道中socket客户端与socket服务端的连接后,接收并消费订阅的socket通道中socket客户端接收到的消息事件。
在本发明实施例中,所述方法还包括:
在接收到客户端发送的新增socket通道请求后,获取用户输入的新增socket通道的配置信息。
在本发明实施例中,所述方法还包括:
将所述第一JAVA文件通过classLoad加载至服务端的虚拟机中。
在本发明实施例中,所述方法还包括:
在启动时,根据服务端中已实现的socket通道的配置信息,利用socket服务端代码模板生成第三JAVA文件,所述第三JAVA文件包括已实现的socket通道的socket服务端。
综上所述,在本发明实施例提出的方法中,根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;向配置同步的socket通道中发布新增socket通道的配置信息,客户端根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中,客户端在建立订阅的socket通道中socket客户端与socket服务端的连接后,接收并消费订阅的socket通道中socket客户端接收到的消息事件。在上述过程中,是利用socket服务端代码模板生成新增socket通道的第一JAVA文件的,且是根据利用socket客户端代码模板生成第二JAVA文件的,第一JAVA文件和第二JAVA文件包括了新增socket通道的socket服务端和socket客户端,即在实现新增socket通道的时,只需要socket服务端代码模板和socket客户端代码模板即可,无需引入第三方系统或需要二次开发介入,效率高,节省资源。
本发明实施例还提出另一种消息消息订阅方法,图5为本发明实施例提出的另一种消息订阅方法的流程图,如图5所示,该方法包括:
步骤501,在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;服务端根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,并向配置同步的socket通道中发布新增socket通道的配置信息,所述第一JAVA文件包括新增socket通道的socket服务端;
步骤502,建立订阅的socket通道中socket客户端与socket服务端的连接;
步骤503,接收并消费订阅的socket通道中socket客户端接收到的消息事件,所述消息事件是服务端发送至与socket客户端建立连接的socket服务端的。
在一实施例中,所述方法还包括:
在配置同步的socket通道的socket客户端与socket服务端建立连接后,向服务端发送新增socket通道请求;
在一实施例中,所述方法还包括:
将所述第二JAVA文件通过classLoad加载至客户端的虚拟机中。
在一实施例中,所述方法还包括:
在启动时,根据客户端中已实现的socket通道的配置信息,利用socket客户端代码模板生成第四JAVA文件,所述第四JAVA文件包括已实现的socket通道的socket客户端。
在一实施例中,所述方法还包括:
在启动时,建立已订阅的socket通道中socket客户端与socket服务端的连接。
在一实施例中,所述方法还包括:
在建立订阅的socket通道中socket客户端与socket服务端的连接之前,接收用户输入的订阅的socket通道;
从所述订阅的socket通道中解析出待建立连接的socket客户端和socket服务端。
综上所述,在本发明实施例提出的方法中,在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;服务端根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,并向配置同步的socket通道中发布新增socket通道的配置信息,所述第一JAVA文件包括新增socket通道的socket服务端;建立订阅的socket通道中socket客户端与socket服务端的连接;接收并消费订阅的socket通道中socket客户端接收到的消息事件,所述消息事件是服务端发送至与socket客户端建立连接的socket服务端的。在上述过程中,是利用socket服务端代码模板生成新增socket通道的第一JAVA文件的,且是根据利用socket客户端代码模板生成第二JAVA文件的,第一JAVA文件和第二JAVA文件包括了新增socket通道的socket服务端和socket客户端,即在实现新增socket通道的时,只需要socket服务端代码模板和socket客户端代码模板即可,无需引入第三方系统或需要二次开发介入,效率高,节省资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种消息订阅系统,其特征在于,包括:
服务端,用于根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;向配置同步的socket通道中发布新增socket通道的配置信息;将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中;
客户端,用于在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;建立订阅的socket通道中socket客户端与socket服务端的连接;接收并消费订阅的socket通道中socket客户端接收到的消息事件。
2.如权利要求1所述的消息订阅系统,其特征在于,客户端还用于:在配置同步的socket通道的socket客户端与socket服务端建立连接后,向服务端发送新增socket通道请求;
服务端还用于:在接收到客户端发送的新增socket通道请求后,获取用户输入的新增socket通道的配置信息。
3.如权利要求1所述的消息订阅系统,其特征在于,服务端还用于:将所述第一JAVA文件通过classLoad加载至服务端的虚拟机中;
客户端还用于:将所述第二JAVA文件通过classLoad加载至客户端的虚拟机中。
4.如权利要求1所述的消息订阅系统,其特征在于,服务端还用于:在启动时,根据服务端中已实现的socket通道的配置信息,利用socket服务端代码模板生成第三JAVA文件,所述第三JAVA文件包括已实现的socket通道的socket服务端;
客户端还用于:在启动时,根据客户端中已实现的socket通道的配置信息,利用socket客户端代码模板生成第四JAVA文件,所述第四JAVA文件包括已实现的socket通道的socket客户端。
5.如权利要求1所述的消息订阅系统,其特征在于,客户端还用于:在启动时,建立已订阅的socket通道中socket客户端与socket服务端的连接。
6.如权利要求1所述的消息订阅系统,其特征在于,客户端还用于:
在建立订阅的socket通道中socket客户端与socket服务端的连接之前,接收用户输入的订阅的socket通道;
从所述订阅的socket通道中解析出待建立连接的socket客户端和socket服务端。
7.一种消息订阅方法,其特征在于,包括:
根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,所述第一JAVA文件包括新增socket通道的socket服务端;
向配置同步的socket通道中发布新增socket通道的配置信息,客户端根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;
将运行时产生的消息事件发布至与socket客户端建立连接的socket服务端中,客户端在建立订阅的socket通道中socket客户端与socket服务端的连接后,接收并消费订阅的socket通道中socket客户端接收到的消息事件。
8.一种消息订阅方法,其特征在于,包括:
在配置同步的socket通道接收到新增socket通道的配置信息后,根据所述新增socket通道的配置信息,利用socket客户端代码模板生成第二JAVA文件,所述第二JAVA文件包括新增socket通道的socket客户端;服务端根据获取的新增socket通道的配置信息,利用socket服务端代码模板生成第一JAVA文件,并向配置同步的socket通道中发布新增socket通道的配置信息,所述第一JAVA文件包括新增socket通道的socket服务端;
建立订阅的socket通道中socket客户端与socket服务端的连接;
接收并消费订阅的socket通道中socket客户端接收到的消息事件,所述消息事件是服务端发送至与socket客户端建立连接的socket服务端的。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至8任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求7至8任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911179415.9A CN110958240A (zh) | 2019-11-27 | 2019-11-27 | 消息订阅系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911179415.9A CN110958240A (zh) | 2019-11-27 | 2019-11-27 | 消息订阅系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110958240A true CN110958240A (zh) | 2020-04-03 |
Family
ID=69977037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911179415.9A Pending CN110958240A (zh) | 2019-11-27 | 2019-11-27 | 消息订阅系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110958240A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115665222A (zh) * | 2022-10-20 | 2023-01-31 | 上海电信科技发展有限公司 | 分布式socket数据交互方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130182713A1 (en) * | 2012-01-18 | 2013-07-18 | LineRate Systems, Inc. | State management using a large hash table |
CN105119926A (zh) * | 2015-09-07 | 2015-12-02 | 中科宇图天下科技有限公司 | 一种基于Socket连接的多通道双工通讯方法 |
CN105407180A (zh) * | 2015-12-29 | 2016-03-16 | 曙光信息产业(北京)有限公司 | 服务器的消息推送方法和装置 |
CN108509201A (zh) * | 2018-03-20 | 2018-09-07 | 深圳神州数码云科数据技术有限公司 | 一种代码生成方法和装置 |
CN109302435A (zh) * | 2017-07-25 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 消息发布方法、装置、系统、服务器及计算机可读存储介质 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
-
2019
- 2019-11-27 CN CN201911179415.9A patent/CN110958240A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130182713A1 (en) * | 2012-01-18 | 2013-07-18 | LineRate Systems, Inc. | State management using a large hash table |
CN105119926A (zh) * | 2015-09-07 | 2015-12-02 | 中科宇图天下科技有限公司 | 一种基于Socket连接的多通道双工通讯方法 |
CN105407180A (zh) * | 2015-12-29 | 2016-03-16 | 曙光信息产业(北京)有限公司 | 服务器的消息推送方法和装置 |
CN109302435A (zh) * | 2017-07-25 | 2019-02-01 | 腾讯科技(深圳)有限公司 | 消息发布方法、装置、系统、服务器及计算机可读存储介质 |
CN108509201A (zh) * | 2018-03-20 | 2018-09-07 | 深圳神州数码云科数据技术有限公司 | 一种代码生成方法和装置 |
CN110300050A (zh) * | 2019-05-23 | 2019-10-01 | 中国平安人寿保险股份有限公司 | 消息推送方法、装置、计算机设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115665222A (zh) * | 2022-10-20 | 2023-01-31 | 上海电信科技发展有限公司 | 分布式socket数据交互方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111447185B (zh) | 一种推送信息的处理方法及相关设备 | |
CN108958922B (zh) | 用于执行任务的方法和装置 | |
CN109614232B (zh) | 任务处理方法、装置、存储介质和电子装置 | |
CN103685496A (zh) | 一种文件数据的传输方法和设备 | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
CN111064626A (zh) | 配置更新方法、装置、服务器及可读存储介质 | |
CN112104679B (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN114296953A (zh) | 一种多云异构系统及任务处理方法 | |
CN110958240A (zh) | 消息订阅系统及方法 | |
JP5961471B2 (ja) | 複数の情報システムおける出力比較方法 | |
CN110018875B (zh) | 一种基于idv的桌面同步实现方法 | |
CN112131014A (zh) | 决策引擎系统及其业务处理方法 | |
CN111258902B (zh) | 基于SockJS服务器的性能测试方法和性能测试系统 | |
CN111477229B (zh) | 语音识别请求处理方法和装置 | |
CN110661857B (zh) | 一种数据同步方法和装置 | |
CN114416275A (zh) | 一种实现多个管理客户端同步虚拟机状态的方法及系统 | |
CN108900602B (zh) | 一种虚拟链接建立方法及相关装置 | |
CN113242313A (zh) | 数据同步方法、系统、装置、服务器及存储介质 | |
CN111427634A (zh) | 一种原子服务调度的方法及装置 | |
CN112766486A (zh) | 神经网络结构的搜索方法、终端、服务器及可读存储介质 | |
CN112416495A (zh) | 一种超融合云终端资源统一管理系统及方法 | |
CN107332679B (zh) | 一种无中心信息同步方法及装置 | |
CN111416852A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
CN111309467A (zh) | 任务分发方法及装置、电子设备及存储介质 | |
CN110798512A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200403 |
|
WD01 | Invention patent application deemed withdrawn after publication |