一种服务器与客户端通信数据自动解析的方法和装置转让专利

申请号 : CN201510599394.1

文献号 : CN105141630B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑志华毕林

申请人 : 厦门市光娱投资管理有限公司

摘要 :

本发明公开了一种服务器与客户端通信数据自动解析的方法,该方法在客户端执行,包括步骤:响应于用户的操作请求,生成第一类型的代码文件,其中第一类型代码文件中包含接口信息;根据接口信息解析第一类型代码文件,作为第一通信数据发送给服务器;接收服务器发送的第二通信数据,其中第二通信数据是由服务器执行操作命令得到第二类型代码、再根据第二类型代码文件解析生成的;以及根据接口信息解析第二通信数据,得到第一类型的请求数据。

权利要求 :

1.一种服务器与客户端通信数据自动解析的装置,所述装置布置在客户端,所述装置包括:代码生成单元,适于响应用户操作请求,生成第一类型的代码文件,其中所述第一类型的代码文件中包含接口信息,所述接口信息包括通信接口号和业务逻辑信息;

数据解析单元,适于根据所述接口信息解析所述第一类型代码文件,得到第一通信数据,还适于根据所述接口信息解析第二通信数据,得到第一类型的请求数据,所述数据解析单元包括:定位模块,适于从第一类型代码、第二通信数据中定位通信接口号;

函数调用模块,适于根据通信接口号确定第一类型代码中的变量类型,调用相应转换函数将变量转换成二进制,作为第一通信数据;以及连接管理单元,适于发送第一通信数据给服务器、并且接收由服务器发送的第二通信数据,其中所述第二通信数据是由服务器执行操作命令得到第二类型代码、再根据第二类型代码文件解析生成的。

2.如权利要求1所述的装置,其中所述第一类型代码包括:Lua、C++、C#;以及所述第二类型代码包括Erlang。

3.如权利要求2所述的装置,其中,

所述函数调用模块还适于根据通信接口号确定从第二通信数据中读取的变量类型,调用相应转换函数读取所述变量类型。

4.一种服务器与客户端通信数据自动解析的方法,所述方法在客户端执行,所述方法包括步骤:响应于用户的操作请求,生成第一类型的代码文件,其中所述第一类型代码文件中包含接口信息,所述接口信息包括通信接口号和业务逻辑信息;

根据所述接口信息解析所述第一类型代码文件,作为第一通信数据发送给服务器:根据通信接口号确定第一类型代码中的变量类型;

调用转换函数将变量转换成二进制,作为第一通信数据;

接收服务器发送的第二通信数据,其中所述第二通信数据是由服务器执行操作命令得到第二类型代码、再根据第二类型代码文件解析生成的;以及根据所述接口信息解析第二通信数据,得到第一类型的请求数据。

5.如权利要求4所述的方法,其中所述第一类型代码包括:Lua、C++、C#;以及所述第二类型代码包括Erlang。

6.如权利要求5所述的方法,其中所述根据接口信息解析第二通信数据的步骤包括:根据通信接口号确定从第二通信数据中读取的变量类型;以及调用相应转换函数读取所述变量类型。

7.一种服务器与客户端通信数据自动解析的装置,所述装置布置在服务器,所述装置包括:连接管理单元,适于接收由客户端发送的第一通信数据,该第一通信数据是客户端响应于用户的操作请求生成的、所述第一通信数据中包含接口信息,以及还适于发送第二通信数据给客户端,其中所述接口信息包括通信接口号和业务逻辑信息;

数据解析单元,根据接口信息解析第一通信数据,得到服务器可读取的第二类型代码,还适于根据接口信息解析第二类型代码文件,作为第二通信数据:所述数据解析单元包括:定位模块,适于从第一通信数据、第二类型代码中定位通信接口号;

函数调用模块,适于根据通信接口号确定从第一通信数据中读取的变量类型,调用相应转换函数解析第一通信数据;以及逻辑处理单元,适于根据第二类型代码处理业务逻辑,得到客户端的请求数据,并写入第二类型代码文件。

8.如权利要求7所述的装置,其中所述第二类型代码包括Erlang。

9.如权利要求8所述的装置,其中,

所述函数调用模块还适于根据通信接口号确定第二类型代码中的变量类型,调用相应转换函数将变量转换成二进制,作为第二通信数据。

10.一种服务器与客户端通信数据自动解析的方法,所述方法在服务器执行,所述方法包括步骤:接收由客户端发送的第一通信数据,该第一通信数据是客户端响应于用户的操作请求生成的、所述第一通信数据中包含接口信息,所述接口信息包括通信接口号和业务逻辑信息;

根据接口信息解析第一通信数据,得到服务器可读取的第二类型代码:定位通信接口号;

根据通信接口号确定要读取的变量类型,调用相应转换函数解析第一通信数据;

根据第二类型代码处理业务逻辑,得到客户端的请求数据,写入第二类型代码文件;

根据所述接口信息解析第二类型代码文件,作为第二通信数据发送给客户端。

11.如权利要求10所述的方法,其中所述第二类型代码包括Erlang。

12.如权利要求11所述的方法,其中,所述根据接口信息解析第二类型代码的步骤包括:根据通信接口号确定第二类型代码中的变量类型;以及调用转换函数将变量转换成二进制,作为第二通信数据。

说明书 :

一种服务器与客户端通信数据自动解析的方法和装置

技术领域

[0001] 本发明涉及编程语言的领域,并且更具体地,涉及在服务器与客户端的不同编程语言之间的通信。

背景技术

[0002] 游戏的开发包括了网络、数据库、游戏逻辑、图形图像等各种模块,不同模块开发人员采用的编程语言也不尽相同,例如常见的有C/C++,C#,Java,Lua,HTML5等,不同的编程语言中对于数据类型的定义不同,各模块编程语言不统一,使得服务器与客户端之间的通信变得繁琐。例如,客户端的研发人员可能会采用Lua、C#等编程语言编写代码,而服务器采用的是Erlong脚本语言,在通信时就必须要将不同编程语言下的数据类型统一,而后再执行业务逻辑,这样的方式无疑增加了开发人员的工作成本。
[0003] 因此,需要一种能够自动解析不同变量类型的方法,实现变量类型在不同语言中的自动切换。

发明内容

[0004] 为此,本发明提供一种服务器与客户端通信数据自动解析的方法和装置,以力图解决或者至少缓解上面存在的至少一个问题。
[0005] 根据本发明的一个方面,提供了一种服务器与客户端通信数据自动解析的装置,该装置布置在客户端,该装置包括:代码生成单元,适于响应用户操作请求,生成第一类型的代码文件,其中第一类型的代码文件中包含接口信息;数据解析单元,适于根据接口信息解析第一类型代码文件,得到第一通信数据,还适于根据接口信息解析第二通信数据,得到第一类型的请求数据;以及连接管理单元,适于发送第一通信数据给服务器、并且接收由服务器发送的第二通信数据,其中第二通信数据是由服务器执行操作命令得到第二类型代码、再根据第二类型代码文件解析生成的。
[0006] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,第一类型代码包括:Lua、C++、C#;以及第二类型代码包括Erlang。
[0007] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,接口信息包括通信接口号和业务逻辑信息。
[0008] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,数据解析单元包括:定位模块,适于从第一类型代码、第二通信数据中定位通信接口号;函数调用模块,适于根据通信接口号确定第一类型代码中的变量类型,调用相应转换函数将变量转换成二进制,作为第一通信数据。
[0009] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,函数调用模块还适于根据通信接口号确定从第二通信数据中读取的变量类型,调用相应转换函数读取所述变量类型。
[0010] 根据本发明的另一个方面,提供了一种服务器与客户端通信数据自动解析的方法,该方法在客户端执行,包括步骤:响应于用户的操作请求,生成第一类型的代码文件,其中第一类型代码文件中包含接口信息;根据接口信息解析第一类型代码文件,作为第一通信数据发送给服务器;接收服务器发送的第二通信数据,其中第二通信数据是由服务器执行操作命令得到第二类型代码、再根据第二类型代码文件解析生成的;以及根据接口信息解析第二通信数据,得到第一类型的请求数据。
[0011] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,第一类型代码包括:Lua、C++、C#;以及第二类型代码包括Erlang。
[0012] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,接口信息包括通信接口号和业务逻辑信息。
[0013] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,根据接口信息解析第一类型代码文件的步骤包括:根据通信接口号确定第一类型代码中的变量类型;以及调用转换函数将变量转换成二进制,作为第一通信数据。
[0014] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,根据接口信息解析第二通信数据的步骤包括:根据通信接口号确定从第二通信数据中读取的变量类型;以及调用相应转换函数读取所述变量类型。
[0015] 根据本发明的另一个方面,提供了一种服务器与客户端通信数据自动解析的装置,该装置布置在服务器,该装置包括:连接管理单元,适于接收由客户端发送的第一通信数据,该第一通信数据是客户端响应于用户的操作请求生成的、第一通信数据中包含接口信息,以及还适于发送第二通信数据给客户端;数据解析单元,根据接口信息解析第一通信数据,得到服务器可读取的第二类型代码,还适于根据接口信息解析第二类型代码文件,作为第二通信数据;以及逻辑处理单元,适于根据第二类型代码处理业务逻辑,得到客户端的请求数据,并写入第二类型代码文件。
[0016] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,第二类型代码包括Erlang。
[0017] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,接口信息包括通信接口号和业务逻辑信息。
[0018] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,数据解析单元包括:定位模块,适于从第一通信数据、第二类型代码中定位通信接口号;函数调用模块,适于根据通信接口号确定从第一通信数据中读取的变量类型,调用相应转换函数解析第一通信数据。
[0019] 可选地,在根据本发明的服务器与客户端通信数据自动解析的装置中,函数调用模块还适于根据通信接口号确定第二类型代码中的变量类型,调用相应转换函数将变量转换成二进制,作为第二通信数据。
[0020] 根据本发明的另一方面,提供了一种服务器与客户端通信数据自动解析的方法,该方法在服务器执行,该方法包括步骤:接收由客户端发送的第一通信数据,该第一通信数据是客户端响应于用户的操作请求生成的、第一通信数据中包含接口信息;根据接口信息解析第一通信数据,得到服务器可读取的第二类型代码;根据第二类型代码处理业务逻辑,得到客户端的请求数据,写入第二类型代码文件;根据接口信息解析第二类型代码文件,作为第二通信数据发送给客户端。
[0021] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,第二类型代码包括Erlang。
[0022] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,接口信息包括通信接口号和业务逻辑信息。
[0023] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,根据接口信息解析第一通信数据的步骤包括:定位通信接口号;以及根据通信接口号确定要读取的变量类型,调用相应转换函数解析第一通信数据。
[0024] 可选地,在根据本发明的服务器与客户端通信数据自动解析的方法中,根据接口信息解析第二类型代码的步骤包括:根据通信接口号确定第二类型代码中的变量类型;以及调用转换函数将变量转换成二进制,作为第二通信数据。
[0025] 根据本发明的服务器与客户端通信数据自动解析方法,定义用户每个操作请求的通信接口号,根据通信接口号确定要读取或写入的数据类型,并且接口信息中还携带业务逻辑信息,用以完成业务逻辑,整个通信过程实现了不同编程语言间通信数据的自动解析。进一步地,修改编程语言中的配置参数就可以调整语言组合,达到切换生成所需语言代码的目的。

附图说明

[0026] 为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
[0027] 图1示出了根据本发明一个实施例的服务器与客户端通信数据自动解析的系统环境100的网络示图;
[0028] 图2示出了根据本发明一个实施例的服务器与客户端通信数据自动解析的装置200的示意图;
[0029] 图3示出了根据本发明一个实施例的服务器与客户端通信数据自动解析的方法300的流程图;
[0030] 图4示出了根据本发明另一个实施例的服务器与客户端通信数据自动解析的装置400的示意图;以及
[0031] 图5示出了根据本发明另一个实施例的服务器与客户端通信数据自动解析的方法500的流程图。

具体实施方式

[0032] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0033] 图1是图示根据一个实施例的服务器与客户端通信数据自动解析的系统环境100的网络示图。除了其他组件,该系统环境100包括服务器110、网络120和客户端130。在其它实施例中,在系统环境100中可以存在更少、附加或不同的组件。具体地,虽然仅描绘了一个客户端130和一个服务器110,但是可以存在连接到网络120的其他客户端或服务器。
[0034] 服务器110可以提供应用相关服务,诸如应用集成的社交联网或者数据收集和分析。虽然服务器110被描绘成单个实体,但是服务器110的功能可以分散在多个计算设备、计算集群或数据中心中,并且服务器110的组件可以驻留在多个地理位置中。
[0035] 服务器110通过网络120与多个客户端130进行通信。网络120可以包括本领域公知的标准通信技术和协议的任何组合。例如,可以通过诸如以太网、802.11、CDMA、3G、4G或数字订户线(DSL)这样的链接技术来通过网络120进行通信。网络120可以支持多个联网协议,包括超文本传输协议(HTTP)、传输控制协议/因特网协议(TCP/IP)或者文件传输协议,并且通过网络120传送的任何数据可以利用诸如传输层安全性(TLS)、安全套接字层(SSL)和因特网协议安全(IPsec)这样的技术来进行加密。
[0036] 图1还包含客户端130的详细视图。除了其他组件,该客户端130包括处理器1302、存储器1304、网络接口设备1306、物理传感器1308、客户端设备API1310以及应用客户端模块1312。客户端130的组件1302、1304、1306、1308、1310、1312通过系统总线1314以通信的方式耦合。作为一个整体,客户端130可以是包括这些组件1302、1304、1306、1308、1310、1312的任何计算设备,诸如智能电话、个人数字助理(PDA)、平板计算机、膝上型计算机或台式计算机。
[0037] 处理器1302执行计算机可读指令。处理器1302可以访问存储器1304以检索用于执行的指令或者读取或写入数据。虽然图1中仅示出了单个处理器1302,但是客户端130可以包含可以并行操作的多个处理器1302。客户端130还可以包含用于图形处理或音频处理的专用处理器1302。存储器1304是能够存储可以由处理器1302执行的计算机可读指令和数据的任何非瞬态计算机可读存储介质。存储器1304可以包括易失性存储器(例如,随机存取存储器)和非易失性存储器(例如,硬盘驱动、固态驱动、压缩盘,磁带等)的组合。网络接口设备1306连接到网络120,并且在网络120和客户端130的其他组件之间交换数据。
[0038] 物理传感器1308可以包括监视客户端130的定向或环境的任何设备。例如,传感器可以包括加速度计、陀螺仪、全球定位服务(GPS)接收器、罗盘或环境光检测器。物理传感器1308还可以包括用于记录对客户端130的用户输入的设备,诸如外部按钮、键盘、鼠标、触摸屏或麦克风。
[0039] 操作系统可以提供一个或多个客户端设备应用编程接口(API)1310,该一个或多个应用客户端设备应用编程接口(API)1310允许二进制软件应用与客户端设备130的物理组件进行交互。操作系统可以包括用于与物理传感器1308、网络接口设备1306或者诸如可以由专用图形或音频处理器1302控制的屏幕或扬声器这样的输出设备进行交互的API。
[0040] 应用客户端模块1312实施通信协议,该通信协议允许以高级编程语言编写的一个或多个应用与本地代码通信。通信协议的一个益处在于,该协议允许高级应用执行通常针对本机代码所保留的任务,诸如修改保存在存储器1304中的其他应用或者通过网络接口设备1306与服务器110进行通信。为了流线化高级应用和本地代码之间的通信,应用客户端模块1312还包含简化由操作系统提供的API1306和高级应用之间的交互的应用客户端API的集合。虽然应用客户端模块1312被示出为单独的实体,但是用于执行应用客户端模块1312的功能的逻辑可以整体或者部分地驻留在处理器1302或存储器1304上。另外,全部或部分的应用客户端模块1312可以被实现为单独的硬件设备,诸如专用集成电路(ASIC)或者现场可编程门阵列(FPGA)。根据本发明的一个实施例,服务器与客户端通信数据自动解析的装置200可以布置在应用客户端模块1312中。
[0041] 下面将介绍服务器110与客户端130通信时通信数据自动解析的过程。
[0042] 当用户在客户端130发起操作请求时,例如玩家输入用户名,点击登录游戏,客户端130会根据登录协议写入接口信息,生成第一类型的代码文件,例如.lua格式的文件。如下给出了登录协议的一个示例:
[0043]
[0044] 根据本发明的一个实施例,将接口信息分为通信接口号和业务逻辑信息,其中通信接口号用于在解析数据时确定要读取或写入的变量类型,业务逻辑信息包含了服务器110处理请求时所需的信息。
[0045] 通信接口号如上所示,为了便于理解以及开发人员的分工,又将通信接口号分为模块号和接口号,在每个模块下又分别包含不同的接口。例如可以分为玩家模块(0)和物品模块(1),玩家模块player里面包含的都是有关玩家的一些接口,比如玩家登陆、玩家命名、玩家说话;物品模块item里面包含的都是一些物品接口,比如物品买卖、物品使用等。
[0046] 对于业务逻辑信息,当玩家发出登录的操作请求时,业务逻辑信息会包含玩家的名称,这样服务器110就可以知道哪个玩家登录,得到对应玩家的信息再返回客户端130;或者当玩家要攻击别的玩家时,业务逻辑信息要包含至少两个信息:攻击发起玩家的ID、被攻击的玩家ID,得到攻击结果后返回给客户端130。
[0047] 然后,客户端130根据接口信息解析第一类型代码文件,作为第一通信数据发送给服务器110。如上所述,客户端130根据通信接口号确定第一类型代码中的变量类型,然后调用相应的转换函数写入字符串,如下所示:
[0048] function ByteArray:writeStringUInt(__string)
[0049]  self:writeUInt(#__string)
[0050]  self:writeStringBytes(__string)
[0051]  return self
[0052]  end
[0053] 其中,__string是需要写入二进制的字符串,self是二进制。
[0054] 根据本发明的一个实施例,这里的第一通信数据就是二进制数据。
[0055] 服务器110接收由客户端130发送的第一通信数据,先定位到通信接口号,根据通信接口号确定第一通信数据中的变量类型,然后调用相应的函数解析第一通信数据,得到服务器可读取的第二类型代码。根据本发明的实施方式,第二类型代码可能会是Erlong脚本语言。下面的代码给出了服务器110根据通信接口号解析数据的示例:
[0056]
[0057] 并且,服务器文件中定义了:
[0058] route_request(<
[0059] 其中,Module代表了模块号,Action代表了接口号,Args是业务逻辑信息,且_Args0是二进制,Username_str是从二进制中读取出来的字符串。
[0060] 由于每个接口的数据量不同,类型也不同,模块号+接口号可以帮服务器110定位该怎么解析这个接口传来的信息。服务器110在解析时会先定位模块号,再定位接口号,根据通信接口号进入对应的解析逻辑,例如针对玩家登录的操作,规定其对应的是0模块0号接口,那么如上段代码示例,规定0模块0号接口是从二进制中读取一个字符串Username_str;然后把字符串传递给对应的函数api_player:login去处理逻辑,得到客户端130的请求数据,并按照协议顺序将客户端130的请求数据写入到第二类型代码文件,在这里,第二类型代码文件是服务器110可读取的代码类型,例如Erlong。除此之外,我们还可以定义诸如8模块2号接口是从二进制中读取一个字符串Nickname(用户昵称)等等。
[0061] 同样地,在将第二类型代码文件发送给客户端之间,需要转换第二类型代码文件的格式。根据所述接口信息解析第二类型代码文件,作为第二通信数据发送给客户端。如下所示:
[0062] Bin_Nickname=list_to_binary(Nickname),
[0063]  Bin_Nickname_Len=size(Bin_Nickname),
[0064]  Data_Bin=<<
[0065]  Bin_Nickname_Len:32/signed,
[0066]  Bin_Nickname/binary
[0067] >>,
[0068] 其中,Bin_Nickname_Len是写入二进制的字符串的长度,由于客户端130读取二进制时会先读取这个长度,然后才知道二进制中多少字节属于字符串,Nickname是需要写入二进制的字符串,Data_Bin就是二进制数据。
[0069] 将二进制数据全部封装好后即可发送给客户端130。
[0070] 客户端130在接收到服务器110发送的第二通信数据后,同样会先根据接口信息解析第二通信数据,确定从第二通信数据中读取的变量类型,再调用相应转换函数读取该变量,例如协议定义:byte:readString为读取字符串,byte:readLongLong为读取长整型,最终得到第一类型的请求数据。
[0071] 根据本发明的服务器110与客户端130通信数据自动解析方法,定义用户每个操作请求的通信接口号,根据通信接口号确定要读取或写入的数据类型,在接口信息中还携带业务逻辑信息,用以完成业务逻辑,整个通信过程实现了不同编程语言间通信数据的自动解析。进一步地,修改编程语言中的配置参数就可以调整语言组合,达到切换生成所需语言代码的目的。
[0072] 图2示出了根据本发明一个实施例的服务器与客户端通信数据自动解析的装置200的示意图。该装置布置在客户端130中,包括:代码生成单元210、数据解析单元220、以及连接管理单元230。其中数据解析单元220分别与代码生成单元210和连接管理单元230相耦接。
[0073] 代码生成单元210适于响应用户操作请求,确定接口信息,生成第一类型的代码文件,其中第一类型的代码文件中包含接口信息。可选地,接口信息包括通信接口号和业务逻辑信息。
[0074] 然后数据解析单元220适于根据接口信息解析第一类型代码文件,得到第一通信数据,并通过连接管理单元230将第一通信数据发送给服务器110。具体地,数据解析单元220包括:适于从第一类型代码中定位通信接口号的定位模块222、以及函数调用模块
224——适于根据通信接口号确定第一类型代码中的变量类型,调用相应转换函数将变量转换成二进制,作为第一通信数据。
[0075] 连接管理单元230接收到由服务器110发送的第二通信数据,其中,第二通信数据是由服务器110执行操作命令得到第二类型代码、再根据第二类型代码文件解析生成的。
[0076] 数据解析单元220还适于根据接口信息解析第二通信数据,得到第一类型的请求数据。同样地,由定位模块222从第二通信数据中定位通信接口号,函数调用模块224根据通信接口号确定从第二通信数据中读取的变量类型,调用相应转换函数读取所述变量类型。
[0077] 根据本发明的一个实施例,第一类型代码包括:Lua、C++、C#;以及第二类型代码包括Erlang。
[0078] 图3示出了根据本发明一个实施例的服务器110与客户端130通信数据自动解析的方法300的流程图。该方法在客户端130中执行,所述方法始于步骤S310。在步骤S310中,响应于用户的操作请求,生成第一类型的代码文件,其中第一类型代码文件中包含接口信息。根据本发明的一个实施例,第一类型代码包括:Lua、C++、C#。并且,接口信息包括通信接口号和业务逻辑信息。
[0079] 随后在步骤S320中,根据接口信息解析第一类型代码文件,作为第一通信数据发送给服务器。基于图1的描述可知,要先根据通信接口号确定第一类型代码中的变量类型,再调用转换函数将变量转换成二进制,作为第一通信数据。
[0080] 随后在步骤S330中,接收服务器发送的第二通信数据。其中第二通信数据是由服务器执行操作命令得到第二类型代码、再根据第二类型代码文件解析生成的。可选地,第二类型代码包括Erlang。根据本发明的实施方式,根据通信接口号确定从第二通信数据中读取的变量类型,再调用相应转换函数读取变量类型。
[0081] 随后在步骤S340中,根据接口信息解析第二通信数据,得到第一类型的请求数据。
[0082] 图4示出了根据本发明另一个实施例的服务器110与客户端130通信数据自动解析的装置400的示意图。该装置400布置在服务器110中,所述装置包括:连接管理单元410、数据解析单元420、以及逻辑处理单元430。
[0083] 连接管理单元410适于接收由客户端130发送的第一通信数据,该第一通信数据是客户端130响应于用户的操作请求生成的、第一通信数据中包含接口信息。根据本发明的实施例,接口信息包括通信接口号和业务逻辑信息。
[0084] 数据解析单元420适于根据接口信息解析第一通信数据,得到服务器110可读取的第二类型代码。根据本发明的实施例,数据解析单元420包括:适于从第一通信数据中定位通信接口号的定位模块422、以及函数调用模块424,适于根据通信接口号确定从第一通信数据中读取的变量类型,调用相应转换函数解析第一通信数据。
[0085] 然后由逻辑处理单元430根据第二类型代码处理业务逻辑,得到客户端的请求数据,并写入第二类型代码文件。可选地,第二类型代码可以是Erlang脚本语言。
[0086] 数据解析单元420还适于根据接口信息解析上述第二类型代码文件,作为第二通信数据,经由连接管理单元410发送给客户端130。同样地,定位模块422会从第二类型代码中定位通信接口号,再由函数调用模块424根据通信接口号确定第二类型代码中的变量类型,调用相应转换函数将变量转换成二进制,作为第二通信数据。
[0087] 图5示出了根据本发明另一个实施例的服务器110与客户端130通信数据自动解析的方法500的流程图。该方法在服务器110中执行,所述方法始于步骤S510。在步骤S510中,接收由客户端130发送的第一通信数据,该第一通信数据是客户端130响应于用户的操作请求生成的、第一通信数据中包含接口信息。根据本发明的实施方式,接口信息包括通信接口号和业务逻辑信息。
[0088] 随后在步骤S520中,根据接口信息解析第一通信数据,得到服务器可读取的第二类型代码。可选地,第二类型代码是Erlang脚本语言。服务器110会定位通信接口号,再根据通信接口号确定要读取的变量类型,调用相应转换函数解析第一通信数据。具体地实施过程在基于图1的表述中已经有了详细的介绍,此处不再赘述。
[0089] 随后在步骤S530中,根据第二类型代码处理业务逻辑,得到客户端130的请求数据,写入第二类型代码文件。
[0090] 随后在步骤S540中,根据接口信息解析第二类型代码文件,作为第二通信数据发送给客户端。根据本发明一个实施方式,服务器110根据通信接口号确定第二类型代码中的变量类型,然后调用转换函数将变量转换成二进制,作为第二通信数据。
[0091] 应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0092] 本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
[0093] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0094] A5、如A4所述的装置,其中函数调用模块还适于根据通信接口号确定从第二通信数据中读取的变量类型,调用相应转换函数读取所述变量类型。
[0095] B10、如B9所述的方法,其中根据接口信息解析第二通信数据的步骤包括:根据通信接口号确定从第二通信数据中读取的变量类型;以及调用相应转换函数读取变量类型。
[0096] C12、如C11所述的装置,其中第二类型代码包括Erlang。C13、如C11或12所述的装置,其中接口信息包括通信接口号和业务逻辑信息。C14、如C13所述的装置,其中C数据解析单元包括:定位模块,适于从第一通信数据、第二类型代码中定位通信接口号;函数调用模块,适于根据通信接口号确定从第一通信数据中读取的变量类型,调用相应转换函数解析第一通信数据。C15、如C14所述的装置,其中,函数调用模块还适于根据通信接口号确定第二类型代码中的变量类型,调用相应转换函数将变量转换成二进制,作为第二通信数据。
[0097] D17、如D16所述的方法,其中第二类型代码包括Erlang。D18、如D16或者17所述的方法,其中,接口信息包括通信接口号和业务逻辑信息。D19、如D18所述的方法,其中,根据接口信息解析第一通信数据的步骤包括:定位通信接口号;以及根据通信接口号确定要读取的变量类型,调用相应转换函数解析第一通信数据。D20、如D19所述的方法,其中根据接口信息解析第二类型代码的步骤包括:根据通信接口号确定第二类型代码中的变量类型;以及调用转换函数将变量转换成二进制,作为第二通信数据。
[0098] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0099] 此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
[0100] 如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0101] 尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。