项目作者: liuguangw

项目描述 :
billing验证
高级语言: Go
项目地址: git://github.com/liuguangw/billing_go.git
创建时间: 2018-10-30T14:47:39Z
项目社区:https://github.com/liuguangw/billing_go

开源协议:MIT License

下载


billing_go

这是一个用 Go 语言编写的 billing 验证服务器。

运行环境要求

支持以下任意一种运行环境

bug 反馈

如果使用此程序出现问题,可以提交 Issue 说明你所遇到的问题,并附上相关日志文件。

billing 的日志在 billing 程序所在的目录,文件名为 billing.log,首次运行时会自动创建此文件。

此外还需要 Login 服务器的日志,因为只有 Login 服务器会连接 billing 服务器。

可以修改一下运行脚本 run.sh,把 Login 服务器的日志写入某个文件,这样就可以在问题复现时从日志中查询到原因。

  1. # 记录Login服务器日志的方法
  2. # 原命令
  3. ./Login >/dev/null 2>&1 &
  4. # 修改/dev/null 为 /home/login.log
  5. # 修改后,日志文件会保存到/home/login.log
  6. ./Login >/home/login.log 2>&1 &

获取程序包

有以下两种方式获取此程序包。

1.使用我编译好的版本

点击这里查看我编译好的各版本, 可能没有最新的编译版本

2.手工编译

如果你想亲自进行编译,需要确保你的操作系统满足以下条件

  • 设备已连接网络
  • 已安装Git
  • 已安装make(仅linux需要)
  • 已安装Go 1.23 或者更高版本

    linux 使用 make 进行编译

    1. # make命令说明
    2. # 构建
    3. make
    4. # 清理
    5. make clean
    6. # 构建并且打包32位
    7. make x32
    8. # 构建并且打包64位
    9. make x64
    10. # 构建并且打包所有架构
    11. make all

    windows 下直接双击build.bat进行编译

相关文件说明

  1. billing - Linux版本的billing服务器
  2. billing.exe - Windows版本的
  3. config.yaml - 配置文件

配置文件

配置文件和程序必须放在同一个目录下,配置文件支持两种格式yaml或者json,配置文件名称为config.yaml或者config.json,如果两个文件都存在,则yaml格式优先。

yaml格式的配置示例

  1. # #后面的为注释
  2. # 字符串可以不加引号,除非里面有#字符,所以如果数据库密码有#字符、空格时,就要加上引号
  3. #
  4. #billing服务器的ip,默认127.0.0.1即可
  5. ip: 127.0.0.1
  6. #
  7. #billing服务器监听的端口(自定义一个未被占用的端口即可)
  8. port: 12680
  9. #
  10. #MySQL服务器的ip或者主机名
  11. db_host: localhost
  12. #
  13. #MySQL服务器端口
  14. db_port: 3306
  15. #
  16. #MySQL用户名
  17. db_user: root
  18. #
  19. #MySQL密码
  20. db_password: 'root'
  21. #
  22. #账号数据库名(一般为web)
  23. db_name: web
  24. #
  25. #只有在老版本MySQL报old_password错误时,才需要设置为true
  26. allow_old_password: false
  27. #
  28. #用户登录的账号不存在时,是否引导用户进行注册
  29. auto_reg: true
  30. #
  31. #允许的服务端连接ip,为空时表示允许任何ip,不为空时只允许指定的ip连接,
  32. #allow_ips:
  33. # - 1.1.1.1
  34. # - 127.0.0.1
  35. #
  36. #点数修正, 在查询点数时,显示的值多1点或者少1点时才需要配置此值, 正常情况设置为0
  37. #如果显示的点数少1点则配置为1(这是临时方案,一般是lua脚本有问题,lua脚本不应该把返回的数值减一,建议修改客户端查询点数的脚本)
  38. #如果显示的点数多一点则配置为-1(一般不可能发生)
  39. point_fix: 0
  40. #登录的玩家总数量限制,如果为0则表示无上限
  41. max_client_count: 500
  42. #
  43. #每台电脑最多可以同时登录的用户数量限制,如果为0则表示无上限
  44. pc_max_client_count: 3

json格式的配置示例

  1. {
  2. "ip": "127.0.0.1",
  3. "port": 12680,
  4. "db_host": "localhost",
  5. "db_port": 3306,
  6. "db_user": "root",
  7. "db_password": "root",
  8. "db_name": "web",
  9. "allow_old_password": false,
  10. "auto_reg": true,
  11. "allow_ips": [],
  12. "point_fix": 0,
  13. "max_client_count": 500,
  14. "pc_max_client_count": 3
  15. }

如果biiling和服务端位于同一台服务器的情况下,建议billing的IP使用127.0.0.1,这样可以避免绕一圈外网

本项目中附带的配置文件各项值为其默认值,如果你的配置中的字段的值与默认值相同,则可以省略相同的字段配置

billing (Windows服务器则是billing.exe)和配置文件放置于同一目录下

修改游戏服务器的配置文件....../tlbb/Server/Config/ServerInfo.ini中billing的配置

  1. #........
  2. [Billing]
  3. Number=1
  4. #billing服务器的ip
  5. IP0=127.0.0.1
  6. # billing服务器监听的端口
  7. Port0=12680
  8. #.........

最后启动游戏服务端、启动billing即可

启动与停止

Linux和Windows下的操作分别如下

启动

Linux下启动billing方法(前台模式)

  1. #进入billing所在文件夹,比如/home
  2. cd /home
  3. #添加执行权限
  4. chmod +x ./billing
  5. #启动billing
  6. ./billing

Linux以守护进程后台运行billing的方法(daemon模式)

  1. #进入billing所在文件夹,比如/home
  2. cd /home
  3. #添加执行权限
  4. chmod +x ./billing
  5. #启动billing
  6. ./billing up -d

Windows下,直接双击billing.exe即可

停止

停止billing命令

  1. # 使用stop命令
  2. ./billing stop
  3. # 也可以使用kill命令
  4. kill -SIGTERM $(pgrep -f billing)

如果是前台模式,可以使用Ctrl + C 组合键停止服务器