服务端
我调整过后的项目:
原项目
我的本地环境:
go version # go version go1.14.14 darwin/amd64
使用容器运行 MySQL & Adminer
docker-compose.mysql.yaml
version: '3.1' services: db: image: mysql command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci restart: always networks: - db_network ports: - "3306:3306" volumes: - 'db_data:/bitnami/mysql/data' environment: MYSQL_DATABASE: scmj MYSQL_ROOT_PASSWORD: 123456 healthcheck: test: ['CMD', '/opt/bitnami/scripts/mysql/healthcheck.sh'] interval: 15s timeout: 5s retries: 6 adminer: image: adminer restart: always networks: - db_network ports: - 8080:8080 volumes: db_data: driver: local networks: db_network: driver: "bridge"
启动
docker-compose -f docker-compose.mysql.yaml up # docker-compose -f docker-compose.mysql.yaml up -d 后台运行 # docker-compose -f docker-compose.mysql.yaml down 卸载 # docker-compose -f docker-compose.mysql.yaml ps # 清理数据文件 # docker volume ls # docker volume rm nanoserver_db_data
容器启动后,会自动帮我们创建数据库 - scmj
。
启动服务端程序
已启动好 MySql
后,我运行如下命令:
go run .
正常你会看到如下截图(会自动的创建表和索引):
我们可以进入 http://localhost:8080/ 查看一下:
客户端
在 Kirk-Wang/nanoserver 中,为少已经放了一份专注于调试服务器逻辑的 apk。
安装安卓模拟器
这里我推荐网易的 MuMu模拟器。
安装 APK
mahjong.apk,已经放到笔者修改过的项目中。这里我们使用多开助手,开4个空来血战。
客户端登录
我们点击微信登录。
发现登录失败……
如何解决?请继续阅读。
解决客户端登录失败问题
当然这问题,也好解决:
- 按作者所说那样,反编译
apk
,找到appConfig.luac
,使用二进制编辑器改完服务器地址,然后重新打包。
- 直接使用代理,如
Charles
进行请求地址转发。(本地调试服务器程序完全够了)
Charles 对客户端请求地址转发
使用 Map Remote
映射到你本机调试的地址就完全够了。
加入 guest 测试渠道 konglai
重新登录进入游戏
完美,搞定。