Solution.xml

Solution

解决方案。一个应用系统可以包含多个解决方案。配置文件名字可以不叫solution.xml。但 存在多个解决方案配置文件时,建议按solution.xxx.xml方式命名文件。

Import

引入其他solution配置文件,这样就可以使用其他文件内定义的Bean。两个soltion配置文 件可以循环Import。如:

<import file="solution.linkd.xml"/>

Module

模块在Zeze里是定义bean,table,protocol,rpc等的地方。这个名字和系统功能划分的“模 块“的概念一致。Zeze本身没有为模块提供什么重要功能,在生成代码时,主要提供内部对 象的名字空间。module可以包含module。module.id必须唯一,必须在solution. ModuleIdAllowRanges规定的范围内。当系统包含多个solution时,范围不能重叠。最终保 证了module.id在整个系统内唯一。生成代码时,除了生成模块内定义的对象,还会为每个 模块生成一个入口文件。需要处理的协议会在这个入口文件内生成空的处理函数。

Bean

Bean是Zeze的核心对象,用来定义数据结构。其中的variable描述变量名字和类型。variable 可以自由增删变量(即使系统上线以后),自动兼容旧的数据结构。variable.id在bean内唯 一,不能复用(variable删除以后,新增的变量再次使用相同的id被认为是一个反悔操作, 此时variable.type必须和删除前的兼容)。variable.type可以是另一个bean。Bean的命名建 议以“B“开头。这样需要创建Bean时,输入B即可得到编辑器的提示。

Table

定义Key-Value存储表。

<table name="tTrade" key="long" value="BTradesession" memory="false"/>

memory配置为true,则表示是内存表,不会落地

Protocol

定义协议。

<protocol name="Trade" argument="BTrade" handle="server"/>

argument是一个Bean。 handle 表示协议在哪里被处理。

Rpc

定义Rpc。

<rpc name="Trade" argument="BTradeArgument" result="BTradeResult" 
handle="server"/>

argument是一个Bean。result是一个Bean。handle 表示协议在哪里被处理。

Project

定义项目,对应一个进程。一个solution一般拥有两个项目。一个server,一个client。 可能还有一个test。

<project name="GameServer" scriptdir="src" platform="java"/>
<project name="GameServer" platform="cs"/>

Service

网络服务定义。协议在网络服务里面注册。网络服务管理连接以及提供网络事件和收到的协 议的派发。

<service name="Server" handle="server">
<module ref="Role"/>
</service>
  • module ref 引用模块。被一个Service引用的模块内定义的协议会被自动注册。
  • handle 引用模块内定义的协议的符合这个类别的,在这个服务里面注册和派发。
  • Protocol.Handle & Rpc.Handle & Service.Handle 处理标签包含:server,client, serverscript, clientscript。采用server,client的叫法,仅仅因为 这样比较符合网络程序功能通常的划分。支持多个标签,用”,”隔开。

Type

Bean变量支持的类型以及在不同语言内的实际类型。

type Java C# Lua TypeScript
bool boolean bool boolean boolean
byte byte byte number(int64) number
short short short number(int64) number
int int int number(int64) number
long long long number(int64) bigint
float float float number(double) number
double double double number(double) number
binary Zeze.Net.Binary Zeze.Net.Binary string Uint8Array
string String string string string
map CollMap2<Bean>,CollMap1<Integer> PMap2<Bean>,PMap1<int> table Map
list CollList2<Bean>,CollList1<Integer> PList2<Bean>,PList1<int> table Array
set CollSet1<Integer> PSet1<int> table Set
dynamic DynamicBean DynamicBean table DynamicBean

Table of contents