CN112866336B - 异步网络通信方法、通信系统、装置及存储介质 - Google Patents
异步网络通信方法、通信系统、装置及存储介质 Download PDFInfo
- Publication number
- CN112866336B CN112866336B CN202011614276.0A CN202011614276A CN112866336B CN 112866336 B CN112866336 B CN 112866336B CN 202011614276 A CN202011614276 A CN 202011614276A CN 112866336 B CN112866336 B CN 112866336B
- Authority
- CN
- China
- Prior art keywords
- lua
- network
- data stream
- kernel
- stream object
- 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
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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- 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/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种异步网络通信方法、通信系统、装置及存储介质,该方法包括:在Lua脚本中建立Lua对象,其中,所述Lua对象具有一种或多种用于处理网络事件的网络操作,所述Lua对象用于与应用层对接;在Lua内核中建立数据流对象,将所述数据流对象与所述Lua对象进行关联,其中,所述数据流对象具有与所述Lua对象相对应的网络操作,所述数据流对象用于与硬件驱动层和/或操作系统层对接;根据相关联的所述数据流对象和所述Lua对象来处理网络事件。利用本发明,能够实现基于Lua脚本的异步网络通信。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种异步网络通信方法、通信系统、装置及存储介质。
背景技术
此处的陈述仅提供与本发明有关的背景信息,而不必然地构成现有技术。
Lua是一门开源、简明、可扩展且高效的弱类型解释型脚本语言。它几乎可以在任何系统中运行。但是,它缺乏高效的异步网络通信部分,使得它往往作为其他应用程序的一部分而存在,而不能独立的进行应用的开发。
发明内容
本发明的目的在于提供一种新的异步网络通信方法、通信系统、装置及存储介质。
本发明的目的采用以下技术方案来实现。依据本发明提出的异步网络通信方法,包括以下步骤:在Lua脚本中建立Lua对象,其中,所述Lua对象具有一种或多种用于处理网络事件的网络操作,所述Lua对象用于与应用层对接;在Lua内核中建立数据流对象,将所述数据流对象与所述Lua对象进行关联,其中,所述数据流对象具有与所述Lua对象相对应的网络操作,所述数据流对象用于与硬件驱动层和/或操作系统层对接;根据相关联的所述数据流对象和所述Lua对象来处理网络事件。
本发明的目的还可以采用以下的技术措施来进一步实现。
前述的异步网络通信方法,所述网络操作包括连接网络操作、监听网络操作、复制对象自身操作、发送数据操作、接收数据操作、断开网络操作中的一个或多个。
前述的异步网络通信方法,当调用一个所述Lua对象的网络操作时,将所述Lua对象作为参数传递至Lua内核。
前述的异步网络通信方法,所述在Lua内核中建立数据流对象,将所述数据流对象与所述Lua对象进行关联,包括:若所调用的所述网络操作是一个所述Lua对象的所述连接网络操作,则将所述Lua对象作为参数传递至Lua内核,在Lua内核中生成与所传入的所述Lua对象对应的数据流对象,并将所述数据流对象与所述Lua对象进行关联得到关联表;若所调用的所述网络操作是一个所述Lua对象的所述监听网络操作,则在将所述Lua对象作为参数传递至Lua内核,同时内核开始监听网络端口,当接收到连接请求后,在Lua内核中生成与所述连接请求对应的且与所述Lua对象对应的数据流对象,并调用所传入的所述Lua对象所具有的所述复制对象自身操作以得到所述Lua对象的复制对象,将所述复制对象与所述数据流对象进行关联得到关联表。
前述的异步网络通信方法,所述根据相关联的所述数据流对象和所述Lua对象来处理网络事件,包括:由操作系统提供的API获取网络事件请求,根据所述网络事件请求触发Lua内核中的所述数据流对象的网络操作;通过所述数据流对象与所述Lua对象的所述关联表查到与所述数据流对象相关联的所述Lua对象,并调用所述Lua对象的对应的网络操作以在Lua脚本中处理网络事件。
前述的异步网络通信方法,所述发送数据操作包括:所述Lua对象调用Lua内核中的发送接口,具体包括:将所述Lua对象和所要发送的数据作为参数传入Lua内核,内核根据所述关联表查找到对应的所述数据流对象,调用所述数据流对象完成发送数据;所述断开网络操作包括:所述Lua对象调用Lua内核中的断开网络接口,具体包括:将所述Lua对象作为参数传入Lua内核,内核根据所述关联表查找到对应的所述数据流对象,调用所述数据流对象完成断开网络。
前述的异步网络通信方法,所述监听网络操作用于服务端,用以通过调用服务端的一个所述Lua对象的所述监听网络操作来监听一个或多个网络端口,以便一个或多个客户端通过另外的所述Lua对象的所述连接网络操作经过所述网络端口连接到服务端;所述连接网络操作用于客户端,用以通过调用客户端的一个所述Lua对象的所述连接网络操作来经过网络端口连接到服务端。
本发明的目的还采用以下的技术方案来实现。依据本发明提出的一种通信系统,所述系统采用如前述任一方面的异步网络通信方法来处理网络请求和数据报文。
本发明的目的还采用以下的技术方案来实现。依据本发明提出的一种通信装置,该通信装置基于前述的通信系统,该通信装置包括终端设备、服务器中的至少一个。
本发明的目的还采用以下的技术方案来实现。依据本发明提出的一种计算机存储介质,包括计算机指令,当计算机指令在设备上运行时,使得设备执行上述任一方面的异步网络通信方法。
本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提出的异步网络通信方法、系统、装置、存储介质及程序产品,实现了基于Lua脚本的异步网络通信,通过Lua脚本来发送异步网络请求和网络操作。进一步的,通过采用延时建立对象的设计,能够在真正需要数据流时才创建内核对象,能够避免预先生成数据流对象而导致的进程浪费、空间浪费。
上述说明仅是本发明技术方案的概述,为了能更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1是本发明一个实施例的异步网络通信方法的流程框图;
图2是本发明一个实施例的通信装置的结构框图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的异步网络通信方法、通信系统、装置及存储介质的具体实施方式、结构、特征及其功效,详细说明如后。
图1为本发明的异步网络通信方法一个实施例的示意性流程框图。请参阅图1,本发明示例的异步网络通信方法主要包括以下步骤:
步骤S11,在Lua脚本中建立Lua对象,其中,该Lua对象具有一种或多种用于处理网络事件的网络操作。该Lua对象用于与应用层对接。可选地,该Lua对象所具有的网络操作可以是预设的。
步骤S12,在Lua内核中建立数据流对象,将数据流对象与Lua对象进行关联。其中,该数据流对象具有与该Lua对象相对应的网络操作。该数据流对象用于与硬件驱动层和/或操作系统层对接。需注意,在一些可选示例中,并不限制数据流对象所具有的操作与Lua对象所具有的操作的类型完全一致,事实上,数据流对象可以仅具有与Lua对象的至少一些种类的网络操作相对应的网络操作,Lua对象也可以仅具有与数据流对象的至少一些种类的网络操作相对应的网络操作。
步骤S13,根据相关联的数据流对象和Lua对象来处理网络事件。
可选的,前述的网络操作包括但不限于:连接(connect)网络操作、监听(listen)网络操作、复制对象自身操作、发送数据操作、接收数据操作、断开(close)网络操作中的一个或多个。
利用本发明提出的异步网络通信方法,能够通过Lua脚本来发送异步网络请求和网络操作。
需注意,网络编程领域,“同步”一般指的是:在数据收发时,需等到数据真正发送出去或者接收到之后,才返回;而“异步”一般指的是:可以把数据发送到缓冲区后立即返回,而发送成功的消息是通过事件通知的。另外,一般来说,异步方式的网络通信所包括的接口比同步方式更多,例如异步方式还包括通知接口。异步方式有利于CPU等硬件更有效地进行处理,例如可以腾出更多的CPU来处理其他事情,因此与同步方式相比,异步方式更加灵活。
在本发明的一些示例中,本文的Lua对象是指通过Lua脚本定义的对象,是在脚本中定义的对象。这个对象可以具有一些属性和方法,包括但不限于:处理连接,处理接收,处理发送,处理关闭以及复制自身的方法(在本文中,对象的方法也称为操作)。Lua对象的属性和方法将会被数据流对象操作和调用。本文的数据流对象是指在Lua内核引擎中创建的内部对象,数据流对象基于操作系统提供的API来生成,用于操作网络数据流和网络事件。
在本发明的一些示例中,前述的关联是指内核建立Lua对象和数据流对象的联系,例如建立关联表,以便能够通过Lua对象找到其数据流对象,以及通过数据流对象,找到Lua对象。本发明不限制关联的具体方式,例如,可以通过id建立映射,也可以将对象的引用直接射到另一个对象的属性中来完成。另外,一般只需要关联一次即可,一般是在建立数据流对象的时候产生的关联。从而在发送数据事件或断开网络事件时,就不需要再将lua对象与数据流对象关联了。
需注意,一般来说,脚本与内核并不完全对应,例如,内核可涉及对诸如寄存器等硬件的控制,而脚本一般不直接涉及具体硬件。
在本发明的一些示例中,脚本中建立的用于网络通信的Lua对象、与内核中建立的用于网络通信的数据流对象是对应的,且Lua对象的属性和方法可被对应的数据流对象处理和调用,数据流对象的属性和方法可被对应的Lua对象处理和调用。
一般来说,脚本引擎建立在应用层,不能直接处理与操作系统、硬件驱动层对接的操作;而内核引擎能够处理与操作系统、硬件驱动层对接的操作。本发明通过在网络通信时内核层的对象与脚本层的对象之间相互调用,实现了透传,进而能够更好的实现基于Lua脚本语言的异步网络通信。
需注意,在本发明的一些示例中,数据流对象是在Lua内核中的,脚本引擎的使用者无法改变。脚本引擎的使用者只能修改Lua对象中的事件处理方法,来处理收到的数据。因此必须由内核的数据流对象将网络事件交给Lua对象来处理。需注意,在一些示例中,内核引擎既能调用内核中的数据流对象及其操作,也能调用Lua脚本中的对象及其操作。
需注意,前述示例仅示出了本发明的一种可选示例,且并未限制各个步骤的顺序,事实上并非必须按照步骤S11至步骤S13顺序执行该方法,例如也可以先执行步骤S12的在Lua内核中建立数据流对象,再执行步骤S11的在Lua脚本建立Lua对象。
在本发明的一些实施例中,当调用一个Lua对象的网络操作时,将该Lua对象作为参数传递至Lua内核。进一步的,当调用一个Lua对象的网络操作时,可以将Lua对象和网络操作要处理的信息作为参数同时传递至Lua内核。需注意,在一些具体示例中,前述的将Lua对象作为参数传递至Lua内核,指的是将Lua对象的标识传递至Lua内核,并非必须将对象本身传递至Lua内核。
另外,在一些实施例中,Lua内核可以调用外部的Lua对象及其网络操作。可选的,Lua内核通过关联表来调用外部的Lua对象及其操作和属性。
需注意,前述的监听是建立网络通信的一个步骤。监听一般应用于服务器端。当服务器在监听一个端口的时候,客户端程序就随时可以通过这个端口连接到服务器。当数据流建立完成以后,就可以开始读写操作了,即发送和接收。
在本发明的一些实施例中,前述的监听网络操作用于服务端,用以通过调用服务端的一个Lua对象的监听网络操作来监听一个或多个网络端口,以便一个或多个客户端通过另外的Lua对象的连接网络操作经过网络端口连接到服务端。可选的,该网络端口为IP端口。
在本发明的一些实施例中,前述的连接网络操作用于客户端,用以通过调用客户端的一个Lua对象的连接网络操作来经过网络端口连接到服务端。
需注意,对于服务器来说,可能收到多个连接请求。因此,在一些示例中,对于多个请求,为每个数据流生成一个数据流对象和一个Lua对象。以防止对所有请求都用一个Lua对象来处理产生的数据混乱问题。
在本发明的一些实施例中,前述步骤S12具体包括:若所调用的网络操作是一个Lua对象的连接网络操作,则将该Lua对象作为参数传递至Lua内核,在Lua内核中生成与所传入的该Lua对象对应的数据流对象,并将该数据流对象与该Lua对象进行关联得到关联表。本实施例所示方法采用了延时建立数据流对象的设计,例如客户端不是在脚本对象创建时就同时创建内核对象,而是在调用连接网络操作时才在内核中生成数据流对象并建立与lua对象的关联,通过延时建立对象,能够在真正需要数据流时才创建内核对象,能够避免预先生成数据流对象而导致的进程浪费、空间浪费。
在本发明的一些实施例中,前述步骤S12具体包括:若所调用的网络操作是一个Lua对象的监听网络操作,则在调用该监听网络操作时,将该Lua对象作为参数传递至Lua内核,同时内核开始监听网络端口;当接收到连接请求后,在Lua内核中生成与该连接请求对应的且与该Lua对象对应的数据流对象,并调用所传入的该Lua对象所具有的复制对象自身操作以得到该Lua对象的复制对象,将该复制对象与该数据流对象进行关联得到关联表。本实施例所示方法采用了延时建立数据流对象的设计,例如服务端在调用监听网络操作后并不生成数据流对象,而是等到接收到连接请求后再在内核中生成数据流对象并建立与lua对象的关联,通过延时建立数据流对象,能够在真正需要数据流时才创建对象,能够避免预先生成数据流对象而导致的进程浪费、空间浪费。
在本发明的一些实施例中,在异步网络中,异步通信包括从上到下的通知、以及从下到上的操作这两种过程。而内核一般会进行两类处理,一种是内核等待操作系统推送来的事件,由操作系统推送的事件来触发内核进行具体处理,包括但不限于接收数据事件、网络异常事件等等;另一种是内核根据脚本中的Lua对象来处理网络事件,包括但不限于发送数据、关闭网络等。
在本发明的一些实施例中,前述步骤S13具体包括:由操作系统提供的API获取网络事件请求,根据该网络事件请求触发Lua内核中的数据流对象的网络操作;通过前述的数据流对象与Lua对象的关联表查到与该数据流对象相关联的Lua对象,并调用该Lua对象的对应的网络操作以在Lua脚本中处理网络事件。
在本发明的一些实施例中,前述的发送数据操作包括:Lua对象调用Lua内核中的发送接口,并具体包括:将Lua对象和所要发送的数据作为参数传入Lua内核,内核根据关联表查找到对应的数据流对象,调用数据流对象完成发送数据。
在本发明的一些实施例中,前述的断开网络操作包括:Lua对象调用Lua内核中的断开网络接口,并具体包括:将Lua对象作为参数传入Lua内核,内核根据关联表查找到对应的数据流对象,调用数据流对象完成断开网络。
在本发明的一些实施例中,前述步骤S13具体包括以下的一个或多个步骤:
获取Lua脚本中的网络事件请求,根据网络事件请求触发一个Lua对象的对应的网络操作,将该Lua对象和该网络操作要处理的信息作为参数传递至Lua内核,在Lua内核中查找与该Lua对象对应的数据流对象,执行该数据流对象的对应的网络操作以在操作系统层和/或硬件驱动层处理网络事件;和/或,
由操作系统提供的API获取网络事件请求,根据网络事件请求触发Lua内核中的一个数据流对象的对应的网络操作,调用与该数据流对象相关联的Lua对象的对应的网络操作以在Lua脚本中处理网络事件。
在本发明的一些实施例中,前述步骤S13具体包括以下的一个或多个步骤:
若由Lua脚本触发发送数据事件,则触发一个Lua对象的发送数据操作,将该Lua对象和用于发送数据的信息作为参数从Lua脚本传递至Lua内核,根据该Lua对象和前述的关联表来查找到对应的数据流对象,利用该数据流对象的发送数据操作来处理该用于发送数据的信息以将数据通过硬件驱动层或操作系统层发出,例如通过网卡将数据发出至其他设备;
若由硬件驱动层或操作系统层触发接收数据事件,则触发一个数据流对象的接收数据操作以从硬件驱动层或操作系统层接收数据,根据该数据流对象和前述的关联表来查找到对应的Lua对象,内核调用该Lua对象的接收数据操作以在Lua脚本层处理接收到的数据,例如存储接收到的数据;
若由Lua脚本触发断开网络事件,则触发一个Lua对象的断开网络操作,将该Lua对象和用于断开网络的信息作为参数从Lua脚本传递至Lua内核,根据该Lua对象和前述的关联表来查找到对应的数据流对象,利用该数据流对象的断开网络操作来处理该用于断开网络的信息以在硬件驱动层或操作系统层断开网络连接。
在一些具体示例中,前述的根据Lua对象和关联表来查找到对应的数据流对象的步骤是由Lua内核完成的。在一些具体示例中,前述的根据数据流对象和关联表来查找到对应的Lua对象是由Lua内核完成的。
在本发明的一些实施例中,本发明提出异步网络通信方法具体包括:
首先,通过脚本语句构建通信对象,即在Lua脚本中建立一个对象(不妨称为Lua对象),这个对象有固定的一些方法和属性。
其次,如果该对象希望作为服务器,那么调用这个对象的listen方法。如果该对象希望作为客户端,那么调用这个对象的connect方法。
第三,当该对象调用connect或者listen方法的时候,lua内核会生成网络对象模块,并将该网络对象模块和Lua对象相关联。
第四,Lua对象可以通过write方法来向连接里写数据,它实际上在调用内核的网络对象模块在写数据。内核对象模块收到数据时,会调用Lua对象中固定的函数来处理这些数据。
在本发明的一些实施例中,所发生的网络事件的类型的判断,是由网络对象模块来进行监测和触发的。具体来说,是由操作系统提供的API来触发,进而触发到了网络对象模块,最后到达Lua对象。
在本发明的一些实施例中,本发明提出一种Lua语言的异步网络扩展方法和系统。系统的内核由C++实现,并集成Lua库。系统的内核首先支持一个异步网络通信接口;再通过Lua脚本实现对内核通信网络接口的调用。异步网络扩展方法的具体方法如下:
步骤一、在lua脚本中建立一个对象;为对象增加处理连接、处理接收、处理发送、处理关闭以及复制自身的方法。
步骤二、在内核中为Lua脚本增加网络对象模块,对象模块包含连接,监听,关闭和发送方法。
步骤三、Lua调用连接和监听方法时候,将步骤一建立的对象作为参数传给方法。
步骤四、内核在调用连接方法时生成与Lua对象对应的数据流对象,并将步骤三传入的对象关联到数据流对象上。
步骤五、内核在调用监听方法时,如果收到连接请求,会生成对应的数据流对象。同时会调用步骤三所传入的对象拥有的步骤一所述的复制自身的方法,并将复制对象关联到数据流对象上。
步骤六、由数据流对象来处理网络的连接,发送,接收,断开等事件,由数据流对象将事件转发给步骤三传入的lua对象。
步骤七、Lua调用数据发送和关闭网络方法时,将步骤一建立的对象作为参数传给方法,在方法内部找到对应的步骤四建立的数据流对象,由数据流对象来进行对应操作。
具体的,在步骤七中,当发送数据时,其调用接口位于脚本代码处,由Lua对象的write方法完成。它执行write的过程,相当于调用了内核的net:write方法,并将要传输的内容和Lua对象自身作为参数传入了内核的接口。内核拿到Lua对象后,根据前述的关联表查找到数据流对象,进而执行write操作。关闭操作也类似。
本发明的实施例还提供一种通信系统,该系统采用前述任意一个实施例所示的异步网络通信方法来处理网络请求和数据报文。
作为一个具体实施例,本发明的通信系统包括脚本对象模块和网络对象模块。
其中,该脚本对象模块用于在Lua脚本中建立Lua对象。其中,该Lua对象具有一种或多种用于处理网络事件的网络操作。Lua对象用于与应用层对接。
该网络对象模块位于Lua内核中。该网络对象模块在Lua内核中建立数据流对象,将数据流对象与Lua对象进行关联。其中,该数据流对象具有与Lua对象相对应的网络操作。数据流对象用于与硬件驱动层和/或操作系统层对接。
该脚本对象模块和该网络对象模块还用于:相互配合地,根据相关联的数据流对象和Lua对象来处理网络事件。
另外,该脚本对象模块和该网络对象模块还可以用于执行上文所提供的对应的方法,此处不再赘述。
本发明的实施例还提供一种通信装置,该通信装置基于前述通信系统,采用前述任意一个实施例所示的异步网络通信方法来处理网络请求和数据报文。该通信装置包括终端设备、服务器中的至少一个,用于基于Lua脚本的异步网络通信。
图2是图示根据本发明的一个实施例的通信装置的硬件框图。如图2所示,根据本发明实施例的通信装置100包括存储器101和处理器102。该通信装置100中的各组件通过总线系统和/或其它形式的连接机构(未示出)互连。本发明的通信装置100可以以各种形式来实施,包括但不限于服务器、或者诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置、车载终端设备、车载显示终端、车载电子后视镜等等的移动终端设备以及诸如数字TV、台式计算机等等的固定终端设备。
该存储器101用于存储非暂时性计算机可读指令。具体地,存储器101可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
该处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制该通信装置100中的其它组件以执行期望的功能。在本发明的一个实施例中,该处理器102用于运行该存储器101中存储的该计算机可读指令,使得该通信装置100执行前述的本发明各实施例的异步网络通信方法的全部或部分步骤。
可以理解的是,装置为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本实施例可以根据上述方法示例对装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。
上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本发明的实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在设备上运行时,使得设备执行上述相关方法步骤实现上述实施例中的异步网络通信方法。
本发明的实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的异步网络通信方法。
其中,本发明提供的通信系统、通信装置、计算机存储介质、计算机程序产品用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
以上所述,仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (8)
1.一种异步网络通信方法,其特征在于,所述方法包括以下步骤:
在Lua脚本中建立Lua对象,其中,所述Lua对象具有一种或多种用于处理网络事件的网络操作,所述Lua对象用于与应用层对接;
在Lua内核中建立数据流对象,将所述数据流对象与所述Lua对象进行关联,其中,所述数据流对象具有与所述Lua对象相对应的网络操作,所述数据流对象用于与硬件驱动层和/或操作系统层对接,其中,所述在Lua内核中建立数据流对象,将所述数据流对象与所述Lua对象进行关联,包括:若所调用的所述网络操作是一个所述Lua对象的所述连接网络操作,则将所述Lua对象作为参数传递至Lua内核,在Lua内核中生成与所传入的所述Lua对象对应的数据流对象,并将所述数据流对象与所述Lua对象进行关联得到关联表;若所调用的所述网络操作是一个所述Lua对象的所述监听网络操作,则在将所述Lua对象作为参数传递至Lua内核,同时内核开始监听网络端口,当接收到连接请求后,在Lua内核中生成与所述连接请求对应的且与所述Lua对象对应的数据流对象,并调用所传入的所述Lua对象所具有的所述复制对象自身操作以得到所述Lua对象的复制对象,将所述复制对象与所述数据流对象进行关联得到关联表;
根据相关联的所述数据流对象和所述Lua对象来处理网络事件。
2.根据权利要求1所述的异步网络通信方法,其特征在于,所述网络操作包括连接网络操作、监听网络操作、复制对象自身操作、发送数据操作、接收数据操作、断开网络操作中的一个或多个。
3.根据权利要求1所述的异步网络通信方法,其特征在于,所述根据相关联的所述数据流对象和所述Lua对象来处理网络事件,包括:
由操作系统提供的API获取网络事件请求,根据所述网络事件请求触发Lua内核中的所述数据流对象的网络操作;通过所述数据流对象与所述Lua对象的所述关联表查到与所述数据流对象相关联的所述Lua对象,并调用所述Lua对象的对应的网络操作以在Lua脚本中处理网络事件。
4.根据权利要求1所述的异步网络通信方法,其特征在于:
所述发送数据操作包括:所述Lua对象调用Lua内核中的发送接口,具体包括:将所述Lua对象和所要发送的数据作为参数传入Lua内核,内核根据所述关联表查找到对应的所述数据流对象,调用所述数据流对象完成发送数据;
所述断开网络操作包括:所述Lua对象调用Lua内核中的断开网络接口,具体包括:将所述Lua对象作为参数传入Lua内核,内核根据所述关联表查找到对应的所述数据流对象,调用所述数据流对象完成断开网络。
5.根据权利要求1所述的异步网络通信方法,其特征在于:
所述监听网络操作用于服务端,用以通过调用服务端的一个所述Lua对象的所述监听网络操作来监听一个或多个网络端口,以便一个或多个客户端通过另外的所述Lua对象的所述连接网络操作经过所述网络端口连接到服务端;
所述连接网络操作用于客户端,用以通过调用客户端的一个所述Lua对象的所述连接网络操作来经过网络端口连接到服务端。
6.一种通信系统,其特征在于,所述系统采用如权利要求1至5中任意一项所述的异步网络通信方法来处理网络请求和数据报文。
7.一种基于权利要求6所述的通信系统的通信装置,所述装置包括终端设备、服务器中的至少一个。
8.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在设备上运行时,使得所述设备执行如权利要求1至5中任一项所述的异步网络通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011614276.0A CN112866336B (zh) | 2020-12-30 | 2020-12-30 | 异步网络通信方法、通信系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011614276.0A CN112866336B (zh) | 2020-12-30 | 2020-12-30 | 异步网络通信方法、通信系统、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112866336A CN112866336A (zh) | 2021-05-28 |
CN112866336B true CN112866336B (zh) | 2022-09-09 |
Family
ID=75998668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011614276.0A Active CN112866336B (zh) | 2020-12-30 | 2020-12-30 | 异步网络通信方法、通信系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112866336B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167687A (zh) * | 2018-09-05 | 2019-01-08 | 山东浪潮云投信息科技有限公司 | 一种批量初始化物理服务器集群网络配置的方法及系统 |
CN110688601A (zh) * | 2019-09-18 | 2020-01-14 | 郑州阿帕斯科技有限公司 | 一种数据处理方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192172A (zh) * | 2006-11-27 | 2008-06-04 | 中兴通讯股份有限公司 | 并行处理事务的异步系统 |
US8683269B2 (en) * | 2011-04-15 | 2014-03-25 | The Boeing Company | Protocol software component and test apparatus |
CN104317578B (zh) * | 2014-10-13 | 2017-12-05 | 无锡梵天信息技术股份有限公司 | 基于引擎Lua脚本应用和引擎与Lua脚本相互调用方法及装置 |
CN111371809B (zh) * | 2020-03-27 | 2022-02-18 | 武大吉奥信息技术有限公司 | 一种基于反向代理架构的服务器及gis服务访问控制方法 |
CN111897667A (zh) * | 2020-08-07 | 2020-11-06 | 杭州安恒信息技术股份有限公司 | 一种基于事件驱动和lua协程的异步通信方法及装置 |
-
2020
- 2020-12-30 CN CN202011614276.0A patent/CN112866336B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167687A (zh) * | 2018-09-05 | 2019-01-08 | 山东浪潮云投信息科技有限公司 | 一种批量初始化物理服务器集群网络配置的方法及系统 |
CN110688601A (zh) * | 2019-09-18 | 2020-01-14 | 郑州阿帕斯科技有限公司 | 一种数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112866336A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3750291B1 (en) | Collaborative editing of media in a mixed computing environment | |
US7877091B2 (en) | Method and system for executing a container managed application on a processing device | |
US7716522B2 (en) | Information processing system and method for executing process during communication error | |
US20220214932A1 (en) | Methods, devices and computer storage media for inter-mini program platform communication | |
EP1497821A1 (en) | System and method for use of multiple applications | |
CN110377369B (zh) | 一种运行小程序的方法、设备和计算机存储介质 | |
US20140258891A1 (en) | Electronic device, storage medium and method for processing information | |
US10789138B2 (en) | SMB service fault processing method and storage device | |
CN110933075B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
WO2020181814A1 (zh) | 应用程序升级方法、装置、终端及计算机可读存储介质 | |
US20220245005A1 (en) | Methods, devices and computer storage media for inter-mini program platform discovery | |
WO2019119315A1 (zh) | 基于多操作系统的输入处理方法、装置及电子设备 | |
US20170163787A1 (en) | Method and electronic device for upgrading or downgrading system | |
WO2022217759A1 (zh) | 一种eSIM码号管理方法及装置 | |
CN109889468B (zh) | 网络数据的传输方法、系统、装置、设备及存储介质 | |
WO2014012361A1 (zh) | 一种创建外部设备控制界面的方法及装置 | |
CN112818336A (zh) | 一种数据访问方法、数据访问装置及计算机可读存储介质 | |
WO2023273403A1 (zh) | 一种Android平台非侵入式通讯服务的实现方法 | |
CN115562887A (zh) | 基于数据组包的核间数据通信方法、系统、设备及介质 | |
CN107943921B (zh) | 页面分享信息生成方法、装置、计算机设备和存储介质 | |
CN112866336B (zh) | 异步网络通信方法、通信系统、装置及存储介质 | |
CN104570967B (zh) | 基于Android系统的远程控制方法及系统 | |
WO2023143545A1 (zh) | 资源处理方法、装置、电子设备及计算机可读存储介质 | |
CN111399928B (zh) | 应用程序的启动方法、装置、电子设备及可读存储介质 | |
CN115629809A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |