pomelo服务端game-server下的config文件夹用于存放配置文件,包括pomelo框架的配置文件、第三方插件的配置文件、用户自定义的配置文件。其中默认的配置文件包括:
配置文件 | 描述 |
---|
master.json | Master主服务器所使用的配置文件 |
servers.json | 用于定义服务器集群,Master主服务器使用。 |
adminServer.json | 服务器类型配置 |
dictionary.json | 用于定义路由压缩的字典配置文件 |
log4js.json | 日志配置 |
服务器配置
主服务器配置master.json
$ vim game-server/config/master.json
{
"development": {
"id": "master-server-1", "host": "127.0.0.1", "port": 3005
},
"production": {
"id": "master-server-1", "host": "127.0.0.1", "port": 3005
}
}
master.json主配置文件的字段格式
字段 | 类型 | 为空 | 描述 |
---|
id | 字符串 | 必填 | Master主服务器的ID |
host | 字符串 | 必填 | Master主服务器的主机地址 |
port | 数字 | 必填 | Master主服务器的主机端口 |
args | 字符串 | 可选 | 为node/v8引擎配置的参数,比如--debug:5958。 |
服务器集群配置server.json
$ vim game-server/config/servers.json
{
"development":{
"gate": [
{"id": "gate-server-1", "host": "127.0.0.1", "clientPort": 3014, "frontend": true}
],
"connector": [
{"id": "connector-server-1", "host": "127.0.0.1", "port": 3150, "clientPort": 3010, "frontend": true},
{"id": "connector-server-2", "host": "127.0.0.1", "port": 3151, "clientPort": 3011, "frontend": true}
],
"chat": [
{"id": "chat-server-1", "host": "127.0.0.1", "port": 3250},
{"id": "chat-server-2", "host": "127.0.0.1", "port": 3251},
{"id": "chat-server-3", "host": "127.0.0.1", "port": 3252}
],
"auth": [
{"id": "auth-server-1", "host": "127.0.0.1", "port": 3350},
{"id": "auth-server-2", "host": "127.0.0.1", "port": 3351},
{"id": "auth-server-3", "host": "127.0.0.1", "port": 3352}
]
},
"production":{
"gate": [
{"id": "gate-server-1", "host": "127.0.0.1", "clientPort": 3014, "frontend": true}
],
"connector": [
{"id": "connector-server-1", "host": "127.0.0.1", "port": 3150, "clientPort": 3010, "frontend": true},
{"id": "connector-server-2", "host": "127.0.0.1", "port": 3151, "clientPort": 3011, "frontend": true}
],
"chat": [
{"id": "chat-server-1", "host": "127.0.0.1", "port": 3250},
{"id": "chat-server-2", "host": "127.0.0.1", "port": 3251},
{"id": "chat-server-3", "host": "127.0.0.1", "port": 3252}
],
"auth": [
{"id": "auth-server-1", "host": "127.0.0.1", "port": 3350},
{"id": "auth-server-2", "host": "127.0.0.1", "port": 3351},
{"id": "auth-server-3", "host": "127.0.0.1", "port": 3352}
]
}
}
服务器集群配置字段选项
字段 | 类型 | 为空 | 描述 |
---|
id | 字符串 | 必填 | 应用逻辑服务器编号 |
host | 字符串 | 必填 | 应用逻辑服务器主机地址,支持IP或域名。 |
port | 数字 | 可选 | 应用逻辑服务器接收RPC请求时所使用的端口,对于后端服务器来说是必须的。 |
clientPort | 数字 | 可选 | 前端服务器几首客户都安链接启用的端口,对于后端服务器而言无需配置。 |
frontend | 布尔 | 可选 | 对于前端服务器需配置为true,省略不配置则默认为false,后端服务器可省略。 |
max-connections | 数值 | 可选 | 前端服务器最大承载链接数量,若超过则后续链接会被connector拒绝。 |
args | 字符串 | 可选 | 提供给node/v8引擎的参数选项 |
框架配置
pomelo框架设置的实现途径包括两种,一种是通过配置文件实现,一种是通过Application.set()
方法进行设置
Application.set()
方法设置的参数根据组件类型而不同
链接配置 connectorConfig
app.set('connectorConfig',
{
connector : pomelo.connectors.hybridconnector,
heartbeat : 10,
useProtobuf : false,
useDict : false
});
配置 | 描述 |
---|
connector | 底层使用的通信connector,默认使用sioconnector。 |
useProtobuf | 是否开启消息的protobuf功能,仅支持hybridconnector。 |
useDict | 是否开启基于字典的路由消息压缩,仅支持hybridconnector。 |
useCrypto | 是否开启通信时的数字签名,仅支持hybirdconnector。 |
encode/decode | 底层connector消息的编码解码函数,不提供则使用系统默认。 |
transports | 仅用于sioconnector,配置socket.io的通信方式,可选websocket、xhr-polling等。 |
会话配置sessionConfig
配置 | 描述 |
---|
singleSession | 是否开启单个用户绑定单个会话,设置为true则禁止用户同时绑定多个会话。 |
pushSchedulerConfig
配置 | 描述 |
---|
scheduler | scheduler组件具体调度策略配置,默认直接将响应发送给客户端。pomelo提供带缓冲带定时的调度策略。 |
flushInterval | 刷新间隔毫秒时间,默认20毫秒。 |
代理配置proxyConfig
配置 | 描述 |
---|
cacheMsg | 是否开启对RPC消息的缓冲 |
interval | 设置刷新缓存的周期 |
mailBoxFactory | 自定义mailbox工厂函数 |
remoteConfig
配置 | 描述 |
---|
cacheMsg | 是否缓存RPC消息 |
interval | 设置缓存刷新时间周期 |
acceptorFactory | 自定义acceptor工厂函数 |
字典配置dictionaryConfig
配置 | 描述 |
---|
dict | 客户端路由字符串文件的位置,默认使用config/dictionary.json。 |
频道配置 channelConfig
配置 | 描述 |
---|
broadcastFilter | 配置广播的过滤函数,会在执行channel.broadcast时在前端服务器上,消息发送前为每个session进行过滤。 |