CN112822193A - 应用通信方法、装置、设备及存储介质 - Google Patents
应用通信方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112822193A CN112822193A CN202110016981.9A CN202110016981A CN112822193A CN 112822193 A CN112822193 A CN 112822193A CN 202110016981 A CN202110016981 A CN 202110016981A CN 112822193 A CN112822193 A CN 112822193A
- Authority
- CN
- China
- Prior art keywords
- message
- application
- plug
- interface
- language format
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种应用通信方法、装置、设备及存储介质,涉及通信技术领域。该方法包括:第一应用生成待发送的第一消息,第一消息为使用第一语言格式的消息;第一应用基于第一插件将第一消息转化为第二消息并向第二应用发送第二消息,第二消息所标识的信息与第一消息所标识的信息相同,且第二消息为使用第二语言格式的消息,其中,第一插件由通信模块编译而成,第一插件预先封装至第一应用所运行的开发框架中。本方案中,第一应用通过调用预先封装至所运行的开发框架中的插件,采用编译插件的通信模块将第一应用所支持的语言格式的消息进行转化,从而实现第一应用与第二应用之间的数据通信。本方案可以有效的提高第一应用和第二应用之间的通信效率。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种应用通信方法、装置、设备及存储介质。
背景技术
Electron是一个面向前端开发人员的新型跨平台桌面应用开发框架,通过在框架内集成Node.js和Chromium运行环境,达到利用前端技术开发传统桌面应用的目的。通常,为了便于对多个游戏客户端的统一管理,可通过开发的桌面应用平台实现统一管理,因此,需要解决桌面应用与游戏客户端之间的数据通信问题。
目前,对于采用基于Electron框架所开发的桌面应用如何适配游戏客户端进程通用的进程间通信机制,还没有一种行之有效的解决方法,从而导致桌面应用与游戏客户端之间的通信受到阻碍。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种应用通信方法、装置、设备及存储介质,以便于解决现有技术中存在的桌面应用与游戏客户端之间通信受阻的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种应用通信方法,包括:
第一应用生成待发送的第一消息,所述第一消息为使用第一语言格式的消息;
所述第一应用基于第一插件将所述第一消息转化为第二消息并向第二应用发送所述第二消息,所述第二消息所标识的信息与所述第一消息所标识的信息相同,且所述第二消息为使用第二语言格式的消息,其中,所述第一插件由通信模块编译而成,所述第一插件预先封装至所述第一应用所运行的开发框架中。
可选地,所述第一应用基于第一插件将所述第一消息转化为第二消息并向第二应用发送所述第二消息,包括:
所述第一应用以所述第一消息作为参数调用第一接口,并由所述第一接口调用所述第一插件,将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息,所述第一接口为用于将待发送消息转化为第二语言格式的消息进行发送的接口。
可选地,所述第一应用以所述第一消息作为参数调用第一接口,并由所述第一接口调用所述第一插件,将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息,包括:
所述第一应用以所述第一消息作为参数调用所述第一接口,由所述第一接口将所述第一消息传送给所述第一接口对应的第一插件;
由所述第一插件按照所述第二语言格式将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息。
可选地,所述由所述第一插件按照所述第二语言格式将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息,包括:
由所述第一插件按照所述第二语言格式将所述第一消息转化为所述第二消息,并将所述第二消息加密,向所述第二应用发送加密后的所述第二消息。
可选地,所述第一接口对应的第一插件为二进制文件。
可选地,所述方法还包括:
所述第一应用通过第二接口接收第三消息,并通过所述第二接口调用第二插件,将所述第三消息转化为第四消息,其中,所述第三消息为使用所述第二语言格式的消息,所述第四消息为使用所述第一语言格式的消息,所述第二接口为用于接收消息并将接收到的消息转化为所述第一语言格式的消息的接口,其中,所述第二插件由通信模块编译而成,所述第二插件预先封装至所述第一应用所运行的开发框架中。
可选地,所述第一应用通过第二接口接收第三消息,并通过所述第二接口调用第二插件,将所述第三消息转化为第四消息,包括:
所述第一应用基于目标回调函数调用所述第二接口,由所述第二接口接收所述第三消息,将所述第三消息传送给所述第二接口对应的第二插件;
由所述第二插件按照所述第一语言格式将所述第三消息转化为所述第四消息,所述目标回调函数用于监听进程间通信消息。
可选地,所述由所述第二插件按照所述第一语言格式将所述第三消息转化为所述第四消息,包括:
由所述第二插件对所述第三消息进行解密,并按照所述第一语言格式将解密后的所述第三消息转化为所述第四消息。
可选地,所述第二接口对应的第二插件为二进制文件。
第二方面,本申请实施例还提供了一种应用通信装置,包括:生成模块、发送模块;
所述生成模块,用于第一应用生成待发送的第一消息,所述第一消息为使用第一语言格式的消息;
所述发送模块,所述第一应用基于第一插件将所述第一消息转化为第二消息并向第二应用发送所述第二消息,所述第二消息所标识的信息与所述第一消息所标识的信息相同,且所述第二消息为使用第二语言格式的消息,其中,所述第一插件由通信模块编译而成,所述第一插件预先封装至所述第一应用所运行的开发框架中。
可选地,所述发送模块,具体用于所述第一应用以所述第一消息作为参数调用第一接口,并由所述第一接口调用所述第一插件,将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息,所述第一接口为用于将待发送消息转化为第二语言格式的消息进行发送的接口。
可选地,所述发送模块,具体用于所述第一应用以所述第一消息作为参数调用所述第一接口,由所述第一接口将所述第一消息传送给所述第一接口对应的第一插件;由所述第一插件按照所述第二语言格式将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息。
可选地,所述发送模块,具体用于第二语言格式将所述第一消息转化为所述第二消息,并将所述第二消息加密,向所述第二应用发送加密后的所述第二消息。
可选地,所述第一接口对应的第一插件为二进制文件。
可选地,所述装置还包括:接收模块;
所述接收模块,用于所述第一应用通过第二接口接收第三消息,并通过所述第二接口调用第二插件,将所述第三消息转化为第四消息,其中,所述第三消息为使用所述第二语言格式的消息,所述第四消息为使用所述第一语言格式的消息,所述第二接口为用于接收消息并将接收到的消息转化为所述第一语言格式的消息的接口,其中,所述第二插件由通信模块编译而成,所述第二插件预先封装至所述第一应用所运行的开发框架中。
可选地,所述接收模块,具体用于所述第一应用基于目标回调函数调用所述第二接口,由所述第二接口接收所述第三消息,将所述第三消息传送给所述第二接口对应的第二插件;由所述第二插件按照所述第一语言格式将所述第三消息转化为所述第四消息,所述目标回调函数用于监听进程间通信消息。
可选地,所述接收模块,具体用于由所述第二插件对所述第三消息进行解密,并按照所述第一语言格式将解密后的所述第三消息转化为所述第四消息。
可选地,所述第二接口对应的第二插件为二进制文件。
第三方面,本申请实施例提供了一种计算机设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当计算机设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行时执行如第一方面中提供的应用通信方法的步骤。
第四方面,本申请实施例提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的应用通信方法的步骤。
本申请的有益效果是:
本申请实施例提供一种应用通信方法、装置、设备及存储介质,该方法包括:第一应用生成待发送的第一消息,第一消息为使用第一语言格式的消息;第一应用基于第一插件将第一消息转化为第二消息并向第二应用发送第二消息,第二消息所标识的信息与第一消息所标识的信息相同,且第二消息为使用第二语言格式的消息,其中,第一插件由通信模块编译而成,第一插件预先封装至第一应用所运行的开发框架中。本方案中,在第一应用与第二应用通信的过程中,第一应用通过调用预先封装至所运行的开发框架中的插件,采用编译插件的通信模块将第一应用所支持的语言格式的消息转化为第二应用所支持的语言格式的消息后发送至第二应用,使得第二应用可以准确的接收到第一应用所发送的消息,从而实现第一应用与第二应用之间的数据通信。相比与现有技术中,由于第一应用与第二应用之间所支持的语言格式的不同,导致第一应用与第二应用的通信受阻,本方案可以有效的提高第一应用和第二应用之间的通信效率。且将由通信模块编译而成的插件封装在Electron中,可以使得桌面应用可直接调用插件所封装的消息接口进行消息传递。由通信模块编译而成的插件的通用性较好,可移植于各类Windows桌面程序。
另外,使用WM_COPYDATA消息的通信方式,异步非阻塞,实现简单,可靠性好,能够很好的结合Nodejs的异步特性来处理IPC消息,提高了应用间交互的效率。
最后,通信模块所编译得到的Addon插件为二进制文件,可以保证关键代码的安全性。同时以原生模块的形式调用通信API,不需要在Node.js层进行复杂的数据转化,能够提供更好的性能。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种应用通信方法的流程示意图;
图2为本申请实施例提供的另一种应用通信方法的流程示意图;
图3为本申请实施例提供的又一种应用通信方法的流程示意图;
图4为本申请实施例提供的一种应用通信装置的示意图;
图5为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“以Electron框架开发的桌面应用与C++语言编写的游戏应用之间的通信”,给出以下实施方式。对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。虽然本申请主要围绕Electron框架开发的桌面应用与C++语言编写的游戏应用之间的通信进行描述,但是应该理解,这仅是一个示例性实施例。本申请的思想可以应用于任何其他场景。例如,本申请可以应用于通过其他桌面应用开发框架所开发的桌面应用与客户端之间的通信,或者,也可以应用于通过移动终端应用开发框架所开发的终端应用与客户端之间的通信。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
首先,对本申请方案所涉及的一些相关技术进行简单说明:
Windows操作系统为不同应用程序间通信提供了一系列的机制:文件映射、共享内存、管道、匿名管道、邮件槽、剪切板、套接字(Sockets)、远程过程调用(RPC)、动态数据交换、动态连接库(DDL)、窗口消息等,利用Windows操作系统高2GB内核共享空间作为数据传递的桥梁,在不同进程间传递和共享数据。各种IPC(Inter-Process Communication,进程间通信)技术都具有自己的特点和使用范围。管道、消息队列、共享内存等技术最适用于同一计算机系统内部的进程间通信,以保证高效率。而远程过程调用、Socket会话编程、MQ(Message Queue,消息队列)消息队列则最适用于远程的应用程序之间通信,可以简化通信的编程并保证通信的可靠性。
Electron框架本身有一套简易的IPC通信机制,专用于解决内部主进程和多个界面渲染进程间的消息传递,但无法实现与外部进程间的交互和通信。Electron与操作系统交互依赖Nodejs环境,Nodejs环境下有一个node-ipc库,通过创建网络套接字Sockets,借助网络来完成进程间通信,支持跨平台环境下的本地和远程进程间的IPC通信,在Nodejs领域用着具体广泛的使用。
除此之外,进程间通信还可以借助外部消息机制来实现,即进程间不直接通信,而是借助中间层,如MQ(Message Queue),Redis发布-订阅模式等,通过第三方服务中转来间接通信。
纵观目前现有的各种IPC通信方案,都无法直接投入应用于Electron框架下的桌面应用与传统游戏客户端之间的跨进程通信。
如果使用目前游戏客户端所采用的传统的Windows通信方式,则需要在Electron应用层进行修改。若在Electron内直接使用Nodejs实现传统Windows应用中的IPC通信方式,涉及到很多系统级别的API,大都没有对应的Nodejs接口也没有对应的第三方模块,因此基本上行不通。若将相关的Windows接口封装成lib或dll,利用node-ffi等Nodejs模块加载进内存后进行调用,看似可行,但这种方法使用Buffer作为中间类型,需要大量的数据转化,在处理高频率的信息传递时可能会有性能上的问题,并且最新的Nodejs版本已经不再支持node-ffi。升级版的ffi-napi又存在无法执行回调的bug。
若采用Electron下的最优方案node-ipc,则需要对游戏客户端进行改造,制定一套专用的Sockets通信机制,并根据node-ipc的内部实现作相应的调整来适配Electron应用。实现上会比较复杂,并且单机场景下通过网络来完成进程间通信有些浪费性能。
另外的利用外部中间层的方式,虽然可行,但是设计上过于复杂,不适用于单机应用的Electron项目。
基于上述技术问题,本申请提供一种发明构思:预先将使用游戏应用的编写语言实现的进程间通信模块编译为Addon插件并封装至桌面应用框架中,进而,在应用通信时,桌面应用框架可以使用该Addon插件实现与游戏应用直接的通信,避免了桌面应用与游戏应用之间通信语言格式的不同所导致的通信受阻的问题,从而提高了桌面应用与游戏应用之间的通信效率。
值得说明的是,本申请中,第一应用和第二应用可以分别为计算机设备中的一个进程。
接下来,对本申请下述实施例中可能涉及到的名词进行相关说明:
1、IPC:Inter-Process Communication,进程间通信,常用的IPC方式包括管道(PIPE)、命名管道(FIFO)、消息队列、内存映射、共享内存、信号、信号量以及套接字等。
2、Addon:使用C++语言编写的动态链接共享对象。
3、API:Application Programming Interface,应用程序接口。
4、Nodejs:基于Chrome V8引擎实现的JavaScript运行环境,同时实现了C++插件(Addon)机制,用来扩展Nodejs的本地功能。
图1为本申请实施例提供的一种应用通信方法的流程示意图;从硬件层面来说,本方案的执行主体可以为计算机设备,从软件层面来说,本方法的执行主体可以是如下所说的第一应用。如图1所示,该方法可包括:
S101、第一应用生成待发送的第一消息,第一消息为使用第一语言格式的消息。
需要说明的是,本申请下述实施例中均是以Electron框架所开发的第一应用、以及通过第二语言格式编写的第二应用之间的通信为例进行说明。实际应用中,本申请的思想也可以应用于其他应用开发框架所开发的第一应用和其他语言格式编写的第二应用之间的通信。另外,本申请方案是以桌面应用之间的通信为应用场景进行说明,实际中,该方案也可以是应用于移动终端应用之间的通信中。本申请对此不做具体限制。
本实施例中,第一应用可以指用于管理游戏应用的桌面应用,该桌面应用可以为多个游戏应用提供游戏下载与更新、游戏管理、新闻推送等基础服务,类似于手机终端上所安装的应用商城,用户可以在其中下载应用或者更新应用等。第二应用则可以指该桌面应用所管理的任一一个游戏应用。
在一些情况下,第一应用可以作为消息发送方,向第二应用发送消息,第二应用对应的作为消息接收方,接收第一应用发送的消息。在另一些情况下,第一应用也可以作为消息接收方,接收由第二应用所发送来的消息。其中,消息可以指第一应用和第二应用之间相互交互的消息,例如:游戏应用下载消息、更新游戏状态消息等。
可选地,Electron框架所开发的第一应用可支持的交互消息可以为第一语言格式的消息,其生产的第一消息为该第一语言格式的消息。
S102、第一应用基于第一插件将第一消息转化为第二消息并向第二应用发送第二消息,第二消息所标识的信息与第一消息所标识的信息相同,且第二消息为使用第二语言格式的消息,其中,第一插件由通信模块编译而成,第一插件预先封装至第一应用所运行的开发框架中。
可选地,由于第二应用可能是使用区别于第一语言格式的第二语言格式所编写的应用,那么,第二应用是不支持第一语言格式的消息的,第一应用无法直接将第一消息发送至第二应用。
本实施例中,第一应用可先将第一消息转化为第二消息,也即将第一语言格式的第一消息转化为第二格式的第二消息,从而将转化后的第二消息发送至第二应用。
第一应用使用预先封装至应用中的第一插件实现对第一消息语言格式的转换。
需要说明的是,虽然对第一消息进行了语言格式上的转化,但是转化后的第二消息和第一消息的内容是相同的,并不会改变消息所要传递的实际信息,也即上述所说的,第二消息所标识的信息与第一消息所标识的信息相同。
综上,本实施例提供的应用通信方法,包括:第一应用生成待发送的第一消息,第一消息为使用第一语言格式的消息;第一应用基于第一插件将第一消息转化为第二消息并向第二应用发送第二消息,第二消息所标识的信息与第一消息所标识的信息相同,且第二消息为使用第二语言格式的消息,其中,第一插件由通信模块编译而成,第一插件预先封装至第一应用所运行的开发框架中。本方案中,在第一应用与第二应用通信的过程中,第一应用通过调用预先封装至所运行的开发框架中的插件,采用编译插件的通信模块将第一应用所支持的语言格式的消息转化为第二应用所支持的语言格式的消息后发送至第二应用,使得第二应用可以准确的接收到第一应用所发送的消息,从而实现第一应用与第二应用之间的数据通信。相比与现有技术中,由于第一应用与第二应用之间所支持的语言格式的不同,导致第一应用与第二应用的通信受阻,本方案可以有效的提高第一应用和第二应用之间的通信效率。且将由通信模块编译而成的插件封装在Electron中,可以使得桌面应用可直接调用插件所封装的消息接口进行消息传递。由通信模块编译而成的插件的通用性较好,可移植于各类Windows桌面程序。
可选地,上述步骤S102中,第一应用基于第一插件将第一消息转化为第二消息并向第二应用发送第二消息,可以包括:第一应用以第一消息作为参数调用第一接口,并由第一接口调用第一插件,将第一消息转化为第二消息并向第二应用发送第二消息,第一接口为用于将待发送消息转化为第二语言格式的消息进行发送的接口。
可选地,第一接口也即消息发送接口,第一应用可以将待发送的第一消息作为第一接口的输入参数,从而使得第一接口可以根据该输入参数对第一消息进行转化得到第二消息。
本实施例中,可通信模块可基于窗口消息WM_COPYDATA实现通信,窗口消息是一种简单便捷却非常强大的IPC通讯方式。第一应用向第二应用发送消息时,第一应用只需指定窗口名字获取目标窗口句柄(目标窗口句柄也即指第二应用的标识),再调用SendMessage消息传递函数,参数是目标窗口的句柄、WM_COPYDATA消息类型、传递数据的起始地址,利用Windows消息队列传递数据。也即,上述第一消息可包括:目标窗口的句柄、WM_COPYDATA消息类型、传递数据的起始地址等。
由于WM_COPYDATA操作简单,底层实际上是通过文件映射来实现的,具有很好的通用性和移植性。
图2为本申请实施例提供的另一种应用通信方法的流程示意图;可选地,如图2所示,上述步骤中,可选地,第一应用以第一消息作为参数调用第一接口,并由第一接口调用第一插件,将第一消息转化为第二消息并向第二应用发送第二消息,包括:
S201、第一应用以第一消息作为参数调用第一接口,由第一接口将第一消息传送给第一接口对应的第一插件。
第一消息作为输入参数输入至第一接口后,第一接口可根据第一消息的具体信息,将第一消息传递给第一接口对应的第一插件。其中,第一插件可以为通过通信模块编译而成。
S202、由第一插件按照第二语言格式将第一消息转化为第二消息并向第二应用发送第二消息。
可选地,第一插件可按照第二语言格式将第一消息的语言格式进行转化,将第一语言格式的第一消息转化为第二语言格式的第二消息,从而将转化后得到的第二消息发送至第二应用。
可选地,步骤S202中,由第一插件按照第二语言格式将第一消息转化为第二消息并向第二应用发送第二消息,可以包括:由第一插件按照第二语言格式将第一消息转化为第二消息,并将第二消息加密,向第二应用发送加密后的第二消息。
通信过程中的一个重要问题是数据的完整性、可靠性和通信数据的安全性问题。
本实施例中,在第一插件将第一消息转化为第二消息后,还可通过加密操作,对得到的第二消息进行加密,从而将加密后的第二消息发送至第二应用。
由于需要交互的大都是进程下载、更新状态信息等,对安全性的要求性不是很高,故可通过常规的简单加密方法即可。例如:以接收方和发送方约定好的数据格式进行消息传递,必要的情况下在数据头部加上一些校验信息,或者只要保证通信双方通信逻辑一致,并使用相同的加解密算法,基本能够保证双方的通信安全,不会出现数据不完整或被篡改的问题。
其中,加解密算法可以采用常规的算法,例如:MD5(Message-Digest Algorithm,信息摘要算法)、SHA(Secure Hash Algorithm,安全散列算法)、HMAC(Hash-based MessageAuthentication Code,哈希运算消息认证码)等。
可选地,第一接口对应的第一插件为二进制文件。
Electron框架中的Nodejs支持使用C++语言格式实现原生模块(native addon),也即,通过Addon的方式将C++代码编译为Node.js可以直接调用的模块。可以将使用C++实现的基于窗口消息的IPC通信模块编译成Addon后以插件的形式封装到Electron应用中。
可选地,第一应用向第二应用发送消息时,可以通过运行在主进程中的Nodejs调用Addon插件所封装好的第一接口,从而通过第一接口将消息发送至第一插件,以对消息进行转化处理。其中,第一插件可以为Addon插件中对第一格式语言消息进行第二格式语言转化的部分插件。
由于Addon本身是一个二进制文件,从而保证了关键代码的安全性。同时以原生模块的形式调用通信API,不需要在Node.js层进行复杂的数据转化,能够提供更好的性能。
上述多个实施例均是以第一应用作为消息发送方进行方法说明,而接下来的多个实施例中则是以第一应用作为消息接收方进行方法说明。
可选地,本申请的方法还可包括:第一应用通过第二接口接收第三消息,并通过第二接口调用第二插件,将第三消息转化为第四消息,其中,第三消息为使用第二语言格式的消息,第四消息为使用第一语言格式的消息,第二接口为用于接收消息并将接收到的消息转化为第一语言格式的消息的接口,其中,第二插件由通信模块编译而成,第二插件预先封装至第一应用所运行的开发框架中。
其中,第二接口可以为消息接收接口,第一应用作为接收方进行消息接收时,可以通过调用第二接口进行消息接收。
与第一应用向第二应用发送消息的过程类似,第一应用在接收第二应用发送的消息时,同样可以将第二应用发送的第二语言格式的第三消息转化为第一语言格式的第四消息。与消息发送过程类似,第一应用可通过调用预先封装的第二插件,通过编译第二插件的通信模块,实现消息的传输以及对消息格式的转化。并且,转化后得到的第四消息与第三消息所标识的信息内容相同,不会因消息格式的转化而对消息内容产生变化。
可选地,第二插件和第一插件可共同组成Addon插件,第一应用可通过调用Addon插件中的第一插件或第二插件实现对应的处理。
图3为本申请实施例提供的又一种应用通信方法的流程示意图;可选地,上述步骤中,第一应用通过第二接口接收第三消息,并通过第二接口调用第二插件,将第三消息转化为第四消息,可以包括:
S301、第一应用基于目标回调函数调用第二接口,由第二接口接收第三消息,将第三消息传送给第二接口对应的第二插件。
与第一接口不同之处在于,第二接口中设置有目标回调函数,用于监听IPC消息,对接上接收消息的服务。
当第一应用作为消息发送方时,其只需要调用第一接口发送消息即可。而当作为消息接收方时,不可能一直处于调用第二接口的状态下,仅需在目标回调函数监听到有消息来时,才调用第二接口接收消息。
S302、由第二插件按照第一语言格式将第三消息转化为第四消息,目标回调函数用于监听进程间通信消息。
可选地,第一应用调用第二接口接收到第三消息后,可将第三消息传递给第二接口对应的第二插件,以通过第二插件将第二应用所支持的第二语言格式的第三消息转化为第一应用支持的第一语言格式的第四消息,从而接收得到第四消息。
可选地,步骤S302中,由第二插件按照第一语言格式将第三消息转化为第四消息,可以包括:由第二插件对第三消息进行解密,并按照第一语言格式将解密后的第三消息转化为第四消息。
由于消息发送方在消息发送时,对消息进行了加密处理,那么,当第一应用调用第二接口接收消息时,第二接口所对应的第二插件可以先对第三消息进行解密处理后,再对解密后的第三消息进行转化,得到第四消息。
当目标回调函数被触发时,也即当目标回调函数监听到消息时,第一应用收到的即为已解密且转化后的第四消息,第一应用可以根据所接收到的消息直接进行消息回复或者是对消息进行进一步的处理。
可选地,第二接口对应的第二插件为二进制文件。
与第一插件类似,第二插件可以为Addon插件中对第二格式语言消息进行第一格式语言转化的部分插件。
本方案中,通过通信模块编译得到Addon插件,将Addon插件集成到Electron应用中,可以使得以Electron框架开发的第一应用可以直接通过运行在主进程中的Node.js调用该Addon插件所封装的消息发送接口或者消息接收接口,并在插件内部对消息的格式进行转化,以实现第一应用和第二应用的通信。
可选地,当第二应用向第一应用发送消息时,同样也需要调用消息发送接口进行消息发送。当第二应用接收第一应用发送的消息时,也需要调用消息接收接口进行消息的接收。
在一种可实现的方式中,在第一应用侧,可以将上述通过C++代码所编译的通信模块以Addon插件的形式集成在Electron中,以使得第一应用进行消息接口的调用,而在第二应用侧,则可以直接加载为第三方C++,或者是将通信模块封装成lib库,以使得第二应用进行消息接口的调用。保证了不同第一应用与第二应用间通信逻辑的一致性,通用性好,可移植于各类Windows桌面程序。
如下将以软件的实现步骤对本申请的方案进行说明:
为了解决不同技术框架客户端(第一应用和第二应用)间通信逻辑的一致性和方便代码迁移,通信模块统一使用C++代码实现。IPC消息接收方通过调用IPC::ServerStart来启动接收方服务,并调用IPC::ServerSetCallback设置具体的消息处理函数,以及IPC::AddCryptSalt来初始化消息解密时需要用到的加密盐。IPC::ServerStart内部使用约定的ID创建服务线程并注册消息回调函数StaticWndProc,启动一个隐形窗口通过GetMessageW来持续监听WM_COPYDATA信息,并调用DispatchMessageW将消息分发到设置好的窗口回调函数。IPC消息发送方则调用IPC::ClientStart注册启动发送方服务和初始化一些内部状态,并同样调用IPC::AddCryptSalt初始化消息发送前所需的加密盐。
通信过程中,发送方将消息封装成约定类型数据格式,并调用IPC::EncryptString方法对数据进行加密,通过IPC::Find方法找到指定ID对应的窗口,再调用IPC::Send方法将数据转化COPYDATASTRUCT信息类型发送到接收方。接收方成功接收到数据后进入StaticWndProc,通过解析出COPYDATASTRUCT内的加密数据并调用IPC::DecryptString方法解析出原始消息,并根据约定的消息类型,如Ping/Pong、Report、log等,调用ServerSetCallback设置的回调方法作进一步处理。
为了在Electron桌面应用中使用C++实现的通信模块,需要利用nan和node-gyp技术,对相关接口进行二次封装并编译成addon扩展,并使用electron-rebuild等工具将其编译为特定Electron版本的本地模块。
实际使用时,Electron开发的桌面应用既需要作为接收方接收并处理游戏应用发送的消息,也可以作为发送方向游戏应用发送消息。当作为接收方时,需要在Electron主进程内调用addon暴露的SetCallback方法设置nodejs层的消息处理函数,通过实例化AsyncProgressQueueWorker对象创建一个异步的消息处理函数HandleProgressCallback,并将其设置为ServerSetCallback的回调。在HandleProgressCallback内将解密后的原始信息转化成v8引擎支持的数据类型和格式,传入nodejs回调中,在Electron主进程中针对具体的消息内容作出实际的响应和操作。
当Electron应用作为发送方时,则直接调用addon封装的SendIPC方法,消息数据被传递到C++层,原始的v8类型数据转化为约定的结构数据后,再进入IPC通信模块作后续处理,最后发送到对应的外部接收方进程。
从而实现Electron桌面应用与游戏应用等C++进程间的双向通信。
综上所述,本实施例提供的应用通信方法,包括:第一应用生成待发送的第一消息,第一消息为使用第一语言格式的消息;第一应用基于第一插件将第一消息转化为第二消息并向第二应用发送第二消息,第二消息所标识的信息与第一消息所标识的信息相同,且第二消息为使用第二语言格式的消息,其中,第一插件由通信模块编译而成,第一插件预先封装至第一应用所运行的开发框架中。本方案中,在第一应用与第二应用通信的过程中,第一应用通过调用预先封装至所运行的开发框架中的插件,采用编译插件的通信模块将第一应用所支持的语言格式的消息转化为第二应用所支持的语言格式的消息后发送至第二应用,使得第二应用可以准确的接收到第一应用所发送的消息,从而实现第一应用与第二应用之间的数据通信。相比与现有技术中,由于第一应用与第二应用之间所支持的语言格式的不同,导致第一应用与第二应用的通信受阻,本方案可以有效的提高第一应用和第二应用之间的通信效率。且将由通信模块编译而成的插件封装在Electron中,可以使得桌面应用可直接调用插件所封装的消息接口进行消息传递。由通信模块编译而成的插件的通用性较好,可移植于各类Windows桌面程序。
另外,使用WM_COPYDATA消息的通信方式,异步非阻塞,实现简单,可靠性好,能够很好的结合Nodejs的异步特性来处理IPC消息,提高了应用间交互的效率。
最后,通信模块所编译得到的Addon插件为二进制文件,可以保证关键代码的安全性。同时以原生模块的形式调用通信API,不需要在Node.js层进行复杂的数据转化,能够提供更好的性能。
下述对用以执行本申请所提供的应用通信方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图4为本申请实施例提供的一种应用通信装置的示意图,该应用通信装置实现的功能对应上述方法执行的步骤。该装置可以理解为安装有第一应用的计算机设备。如图4所示,该应用通信装置可包括:生成模块410、发送模块420;
生成模块410,用于第一应用生成待发送的第一消息,第一消息为使用第一语言格式的消息;
发送模块420,用于第一应用基于第一插件将第一消息转化为第二消息并向第二应用发送第二消息,第二消息所标识的信息与第一消息所标识的信息相同,且第二消息为使用第二语言格式的消息,其中,第一插件由通信模块编译而成,第一插件预先封装至第一应用所运行的开发框架中。
可选地,发送模块420,具体用于第一应用以第一消息作为参数调用第一接口,并由第一接口调用第一插件,将第一消息转化为第二消息并向第二应用发送第二消息,第一接口为用于将待发送消息转化为第二语言格式的消息进行发送的接口。
可选地,发送模块420,具体用于第一应用以第一消息作为参数调用第一接口,由第一接口将第一消息传送给第一接口对应的第一插件;由第一插件按照第二语言格式将第一消息转化为第二消息并向第二应用发送第二消息。
可选地,发送模块420,具体用于第二语言格式将第一消息转化为第二消息,并将第二消息加密,向第二应用发送加密后的第二消息。
可选地,第一接口对应的第一插件为二进制文件。
可选地,该装置还包括:接收模块;
接收模块,用于第一应用通过第二接口接收第三消息,并通过第二接口调用第二插件,将第三消息转化为第四消息,其中,第三消息为使用第二语言格式的消息,第四消息为使用第一语言格式的消息,第二接口为用于接收消息并将接收到的消息转化为第一语言格式的消息的接口,其中,第二插件由通信模块编译而成,第二插件预先封装至第一应用所运行的开发框架中。
可选地,接收模块,具体用于第一应用基于目标回调函数调用第二接口,由第二接口接收第三消息,将第三消息传送给第二接口对应的第二插件;由第二插件按照第一语言格式将第三消息转化为第四消息,目标回调函数用于监听进程间通信消息。
可选地,接收模块,具体用于由第二插件对第三消息进行解密,并按照第一语言格式将解密后的第三消息转化为第四消息。
可选地,第二接口对应的第二插件为二进制文件。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。
需要说明的是,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System-on-a-chip,简称SOC)的形式实现。
图5为本申请实施例提供的一种计算机设备的结构示意图,该设备可以是具备数据处理功能的计算设备。
该设备可包括:处理器801、存储器802。
存储器802用于存储程序,处理器801调用存储器802存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
其中,存储器802存储有程序代码,当程序代码被处理器801执行时,使得处理器801执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的应用通信方法中的各种步骤。
处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (12)
1.一种应用通信方法,其特征在于,包括:
第一应用生成待发送的第一消息,所述第一消息为使用第一语言格式的消息;
所述第一应用基于第一插件将所述第一消息转化为第二消息并向第二应用发送所述第二消息,所述第二消息所标识的信息与所述第一消息所标识的信息相同,且所述第二消息为使用第二语言格式的消息,其中,所述第一插件由通信模块编译而成,所述第一插件预先封装至所述第一应用所运行的开发框架中。
2.根据权利要求1所述的方法,其特征在于,所述第一应用基于第一插件将所述第一消息转化为第二消息并向第二应用发送所述第二消息,包括:
所述第一应用以所述第一消息作为参数调用第一接口,并由所述第一接口调用所述第一插件,将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息,所述第一接口为用于将待发送消息转化为第二语言格式的消息进行发送的接口。
3.根据权利要求2所述的方法,其特征在于,所述第一应用以所述第一消息作为参数调用第一接口,并由所述第一接口调用所述第一插件,将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息,包括:
所述第一应用以所述第一消息作为参数调用所述第一接口,由所述第一接口将所述第一消息传送给所述第一接口对应的第一插件;
由所述第一插件按照所述第二语言格式将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息。
4.根据权利要求3所述的方法,其特征在于,所述由所述第一插件按照所述第二语言格式将所述第一消息转化为所述第二消息并向所述第二应用发送所述第二消息,包括:
由所述第一插件按照所述第二语言格式将所述第一消息转化为所述第二消息,并将所述第二消息加密,向所述第二应用发送加密后的所述第二消息。
5.根据权利要求3所述的方法,其特征在于,所述第一接口对应的第一插件为二进制文件。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括:
所述第一应用通过第二接口接收第三消息,并通过所述第二接口调用第二插件,将所述第三消息转化为第四消息,其中,所述第三消息为使用所述第二语言格式的消息,所述第四消息为使用所述第一语言格式的消息,所述第二接口为用于接收消息并将接收到的消息转化为所述第一语言格式的消息的接口,其中,所述第二插件由通信模块编译而成,所述第二插件预先封装至所述第一应用所运行的开发框架中。
7.根据权利要求6所述的方法,其特征在于,所述第一应用通过第二接口接收第三消息,并通过所述第二接口调用第二插件,将所述第三消息转化为第四消息,包括:
所述第一应用基于目标回调函数调用所述第二接口,由所述第二接口接收所述第三消息,将所述第三消息传送给所述第二接口对应的第二插件;
由所述第二插件按照所述第一语言格式将所述第三消息转化为所述第四消息,所述目标回调函数用于监听进程间通信消息。
8.根据权利要求7所述的方法,其特征在于,所述由所述第二插件按照所述第一语言格式将所述第三消息转化为所述第四消息,包括:
由所述第二插件对所述第三消息进行解密,并按照所述第一语言格式将解密后的所述第三消息转化为所述第四消息。
9.根据权利要求7或8所述的方法,其特征在于,所述第二接口对应的第二插件为二进制文件。
10.一种应用通信装置,其特征在于,包括:生成模块、发送模块;
所述生成模块,用于第一应用生成待发送的第一消息,所述第一消息为使用第一语言格式的消息;
所述发送模块,用于所述第一应用基于第一插件将所述第一消息转化为第二消息并向第二应用发送所述第二消息,所述第二消息所标识的信息与所述第一消息所标识的信息相同,且所述第二消息为使用第二语言格式的消息,其中,所述第一插件由通信模块编译而成,所述第一插件预先封装至所述第一应用所运行的开发框架中。
11.一种计算机设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当计算机设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行时执行如权利要求1至9任一所述的应用通信方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至9任一所述的应用通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110016981.9A CN112822193B (zh) | 2021-01-05 | 2021-01-05 | 应用通信方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110016981.9A CN112822193B (zh) | 2021-01-05 | 2021-01-05 | 应用通信方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822193A true CN112822193A (zh) | 2021-05-18 |
CN112822193B CN112822193B (zh) | 2023-03-24 |
Family
ID=75868401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110016981.9A Active CN112822193B (zh) | 2021-01-05 | 2021-01-05 | 应用通信方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822193B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125053A (zh) * | 2021-11-19 | 2022-03-01 | 北京鲸鲮信息系统技术有限公司 | 跨系统的网络设备调用方法及装置、电子设备、存储介质 |
CN114237758A (zh) * | 2021-12-21 | 2022-03-25 | 元心信息科技集团有限公司 | 通信连接方法、装置、电子设备及计算机可读存储介质 |
CN114281576A (zh) * | 2022-03-08 | 2022-04-05 | 魔门塔(苏州)科技有限公司 | 双通信架构算法调用方法、装置、算法控制方法及车辆 |
CN117519691A (zh) * | 2024-01-04 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 应用程序处理方法、装置、计算机设备和存储介质 |
CN118193254A (zh) * | 2024-05-15 | 2024-06-14 | 先临三维科技股份有限公司 | 一种进程通信方法、装置、介质及设备 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662772A (zh) * | 2012-03-08 | 2012-09-12 | 河海大学 | 多语言开发系统中实现不同语言间数据通信的方法 |
CN103064886A (zh) * | 2012-12-07 | 2013-04-24 | 百度在线网络技术(北京)有限公司 | 支持多浏览器的方法及插件 |
CN105468465A (zh) * | 2015-12-28 | 2016-04-06 | 深圳市科漫达智能管理科技有限公司 | 一种基于ace的进程间通信系统和方法 |
CN105656760A (zh) * | 2016-01-08 | 2016-06-08 | 华自科技股份有限公司 | 软件插件之间的通信方法及系统 |
US20160314115A1 (en) * | 2015-04-24 | 2016-10-27 | Michelle Windebank | Cross-platform messaging application |
CN108062252A (zh) * | 2016-11-08 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种信息交互方法、对象管理方法及装置和系统 |
CN109634751A (zh) * | 2018-10-19 | 2019-04-16 | 深圳市网旭科技有限公司 | 一种利用electron框架实现应用层和底层通信的方法 |
JP2019070969A (ja) * | 2017-10-10 | 2019-05-09 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにプログラム |
CN110275710A (zh) * | 2019-06-10 | 2019-09-24 | 天翼电子商务有限公司 | 一种Java本地接口一致性检查方法及系统、存储介质及终端 |
CN110569069A (zh) * | 2018-06-06 | 2019-12-13 | 海能达通信股份有限公司 | 一种配置管理方法、配置管理系统及具有存储功能的装置 |
CN110647300A (zh) * | 2019-09-02 | 2020-01-03 | 深圳市特康生物工程有限公司 | 一种android平台QT程序使用打印机的方法 |
CN111209005A (zh) * | 2020-01-06 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 程序文件的编译方法、装置和计算机可读存储介质 |
CN111475154A (zh) * | 2020-03-17 | 2020-07-31 | 北京邮电大学 | 程序编辑系统、方法、电子设备及存储介质 |
-
2021
- 2021-01-05 CN CN202110016981.9A patent/CN112822193B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662772A (zh) * | 2012-03-08 | 2012-09-12 | 河海大学 | 多语言开发系统中实现不同语言间数据通信的方法 |
CN103064886A (zh) * | 2012-12-07 | 2013-04-24 | 百度在线网络技术(北京)有限公司 | 支持多浏览器的方法及插件 |
US20160314115A1 (en) * | 2015-04-24 | 2016-10-27 | Michelle Windebank | Cross-platform messaging application |
CN105468465A (zh) * | 2015-12-28 | 2016-04-06 | 深圳市科漫达智能管理科技有限公司 | 一种基于ace的进程间通信系统和方法 |
CN105656760A (zh) * | 2016-01-08 | 2016-06-08 | 华自科技股份有限公司 | 软件插件之间的通信方法及系统 |
CN108062252A (zh) * | 2016-11-08 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种信息交互方法、对象管理方法及装置和系统 |
JP2019070969A (ja) * | 2017-10-10 | 2019-05-09 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにプログラム |
CN110569069A (zh) * | 2018-06-06 | 2019-12-13 | 海能达通信股份有限公司 | 一种配置管理方法、配置管理系统及具有存储功能的装置 |
CN109634751A (zh) * | 2018-10-19 | 2019-04-16 | 深圳市网旭科技有限公司 | 一种利用electron框架实现应用层和底层通信的方法 |
CN110275710A (zh) * | 2019-06-10 | 2019-09-24 | 天翼电子商务有限公司 | 一种Java本地接口一致性检查方法及系统、存储介质及终端 |
CN110647300A (zh) * | 2019-09-02 | 2020-01-03 | 深圳市特康生物工程有限公司 | 一种android平台QT程序使用打印机的方法 |
CN111209005A (zh) * | 2020-01-06 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 程序文件的编译方法、装置和计算机可读存储介质 |
CN111475154A (zh) * | 2020-03-17 | 2020-07-31 | 北京邮电大学 | 程序编辑系统、方法、电子设备及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125053A (zh) * | 2021-11-19 | 2022-03-01 | 北京鲸鲮信息系统技术有限公司 | 跨系统的网络设备调用方法及装置、电子设备、存储介质 |
CN114237758A (zh) * | 2021-12-21 | 2022-03-25 | 元心信息科技集团有限公司 | 通信连接方法、装置、电子设备及计算机可读存储介质 |
CN114237758B (zh) * | 2021-12-21 | 2024-02-02 | 元心信息科技集团有限公司 | 通信连接方法、装置、电子设备及计算机可读存储介质 |
CN114281576A (zh) * | 2022-03-08 | 2022-04-05 | 魔门塔(苏州)科技有限公司 | 双通信架构算法调用方法、装置、算法控制方法及车辆 |
CN117519691A (zh) * | 2024-01-04 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 应用程序处理方法、装置、计算机设备和存储介质 |
CN117519691B (zh) * | 2024-01-04 | 2024-04-16 | 腾讯科技(深圳)有限公司 | 应用程序处理方法、装置、计算机设备和存储介质 |
CN118193254A (zh) * | 2024-05-15 | 2024-06-14 | 先临三维科技股份有限公司 | 一种进程通信方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112822193B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112822193B (zh) | 应用通信方法、装置、设备及存储介质 | |
CN112114979B (zh) | 远程过程调用方法和装置 | |
CN110009494B (zh) | 一种监控区块链中的交易内容的方法及装置 | |
US9648052B2 (en) | Real-time communications gateway | |
CN110071933B (zh) | 安全套接层加速方法、装置、设备及可读存储介质 | |
CN110662089A (zh) | 弹幕接收处理方法、存储介质、电子设备及系统 | |
US20240214472A1 (en) | Communication protocol conversion method, and device, system, and gateway device | |
US10630753B2 (en) | Asynchronous application data access system and method | |
US10313230B1 (en) | System and method for unmarshalled routing | |
CN111586072A (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
US8200278B2 (en) | Adding SMS as a transport type for an enterprise service bus | |
US11929933B2 (en) | Ephemeral data stream routing service | |
CN108347471B (zh) | 获取第三方用户信息的方法、装置及系统 | |
Huang | Android IPC mechanism | |
CN113542431B (zh) | 信息处理方法、装置、电子设备及存储介质 | |
US8005923B2 (en) | System and method of obfuscating queue management | |
CN111460464B (zh) | 数据加解密方法、装置、电子设备及计算机存储介质 | |
CN114036215A (zh) | 加密数据库的访问方法、计算设备及存储介质 | |
CN112165529A (zh) | 一种低成本跨网络数据交换的方法、装置、设备和介质 | |
CN114448652B (zh) | 进行加密通信的方法、装置、设备和存储介质 | |
CN108733989A (zh) | 一种针对Android应用的通信协议加密方法 | |
Jeong | Sensor device virtualization for mobile cloud systems | |
CN117076160B (zh) | 组件调用方法、装置、设备和存储介质 | |
US11494197B2 (en) | Enabling a pre-boot screen to be accessed remotely | |
Singh et al. | An efficient device to device RPC framework using DBUS and KDBus |
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 |