Skip to content

服务器启动参数


解析多种启动方式的优先级参数解析

参数优先级

命令行参数 > 环境变量 > 配置文件 > 默认内部配置

参数解析

参数定义参数名称必须具体描述
ServerType服务器类型启动的服务器类型.从枚举ServerType中获取.
ServerId服务器ID服务器ID.每个服唯一.
DataBaseUrl数据库连接地址数据库的连接字符串地址
DataBaseName数据库的名称数据库的名称
APMPortAPM监控端口不配置将不会启动.配置建议29091
IsDebug是否是Debug模式打印消息的开关.不开将不会记录
IsDebugSend是否打印发送的消息内容打印发送消息的内容.只有在 IsDebugtrue 时有效,默认值为 false
IsDebugReceive是否打印接收的消息内容打印接收消息的内容.只有在 IsDebugtrue 时有效,默认值为 false
IsDebugSendHeartBeat是否打印发送的心跳数据只有在 IsDebugSendtrue 时有效,默认值为 false
IsDebugReceiveHeartBeat是否打印接收的心跳数据只有在 IsDebugReceivetrue 时有效,默认值为 false
IsDebugReceive是否打印接收的消息内容打印接收消息的内容.必须在开始 IsDebug 的情况下生效
SaveDataInterval数据落地的间隔数据存档的时间间隔.单位毫秒.默认5分钟
InnerIp监听的IP监听的本地IP.建议配置 0.0.0.0127.0.0.1
InnerPort本地端口监听的本地端口
OuterIp外部IP给外部访问的IP.只有发现中心启用的时候才有效
OuterPort外部端口给外部访问的端口.只有发现中心启用的时候才有效
HttpUrlHTTP地址HTTP的管理地址头
HttpPortHTTP端口HTTP的管理端口
HttpsPortHttps端口HTTPS的管理端口,目前保留
WsPortWebSocket 端口WebSocket 端口.不配置将不会启动WebSocket 服务
WssPortWebSocket 加密端口WebSocket 加密端口.不配置将不会启动WebSocket 服务
WssCertFilePathWebSocket 加密端口的证书WebSocket 加密证书地址
MinModuleId最小的处理消息模块ID游戏逻辑模块的最小消息模块ID,从10-30000
MaxModuleId最大的处理消息模块ID游戏逻辑模块的最大消息模块ID,从10-30000,建议配置成一样.如果是单服务器.则配置范围为最大
Language服务器的语言.服务器可能在不同的国家或者不同地区的玩家服务.可能依照这个来区分.目前没有实际用途
DataCenter数据中心,保留数据中心.
DiscoveryCenterIp发现中心IP或地址连接到发现中心的地址.只有在多进程完备的情况下生效
DiscoveryCenterPort发现中心端口连接到发现中心的端口.只有在多进程完备的情况下生效
DBIp数据库IP或地址数据服务器地址.只有在多进程完备的情况下生效
DBPort数据库端口数据服务器端口.只有在多进程完备的情况下生效

最佳实践

命令行参数(主要是在本地或命令行方式启动)

使用方式.

shell

GameFrameX.Launcher.exe --ServerType Game --ServerId 9000 --APMPort 29090 --InnerIp 127.0.0.1 --InnerPort 29001 --OuterIp 127.0.0.1 --OuterPort 29010 --MinModuleId 1 --MaxModuleId 9999 --WsPort 29110 --DiscoveryCenterIp 127.0.0.1 --DiscoveryCenterPort 21001 --HttpCode inner_httpcode --DataBaseUrl "mongodb+srv://gameframex:xxx@gameframex.db.mongodb.net/?retryWrites=true&w=majority" --DataBaseName gameframex

环境变量(主要是给Docker使用)

以下为启动游戏服务器

  • 游戏服务器可以同时拥有账号服务器的功能.还可以提供其他的服务
yaml
services:
  server.game:
    image: registry.cn-shenzhen.aliyuncs.com/gameframex/server.launcher:1.0.0
    container_name: game
    ports:
      - 20001:20001
      - 8898:8898
      - 25001:25001
    environment:
      - ServerType=Game
      - ServerId=1000
      - APMPort=9090
      - InnerIp=127.0.0.1
      - InnerPort=9001
      - OuterIp=127.0.0.1
      - OuterPort=9010
      - MinModuleId=
      - MaxModuleId=999
      - WsPort=9110
      - DiscoveryCenterIp=127.0.0.1
      - DiscoveryCenterPort=1001
      - HttpCode=inner_httpcode
      - DataBaseUrl="mongodb+srv://gameframex:xxx@gameframex.db.mongodb.net/?retryWrites=true&w=majority"
      - DataBaseName=gameframex
    volumes:
      - "./running/hotfix:/app/hotfix"
      - "./running/json:/app/json"
      - "./running/logs:/app/logs"

以下为启动游戏账号服务器

  • 因为账号服务器只需要HTTP服务,所以其他的端口都可以不配置,但是DB必须配置
  • 账号服务器提供账号自身相关的业务,和游戏相关的将无法正常执行处理
yaml
services:
  server.game:
    image: registry.cn-shenzhen.aliyuncs.com/gameframex/server.launcher:1.0.0
    container_name: game
    ports:
      - 29120:29120
    environment:
      - ServerType=Game
      - ServerId=1001
      - HttpPort=29120
      - HttpCode=inner_httpcode
      - DataBaseUrl="mongodb+srv://gameframex:xxx@gameframex.db.mongodb.net/?retryWrites=true&w=majority"
      - DataBaseName=gameframex
    volumes:
      - "./running/hotfix:/app/hotfix"
      - "./running/json:/app/json"
      - "./running/logs:/app/logs"

配置文件

文件路径GameFrameX.Launcher/Configs/app_config.json 默认这个文件不存在,如需使用改文件,请自行创建。程序会在启动的时候自动读取该文件 以下为文件内容

json
[
  {
    "IsDebug": true,
    "ServerId": 1001,
    "ServerType": "All",
    "ServerName": "gfx_server",
    "LocalIp": "127.0.0.1",
    "TcpPort": 8898,
    "HttpCode": "inner_httpcode",
    "HttpPort": 20001,
    "WsPort": 25001,
    "WssPort": 0,
    "WssCertFilePath": "certs/cert.pem",
    "GrpcPort": 30001,
    "SDKType": 0,
    "DataBaseUrl": "mongodb+srv://gameframex:xxx@gameframex.db.mongodb.net/?retryWrites=true&w=majority",
    "DataBaseName": "gameframex"
  }
]