# mb **Repository Path**: wellbye/mb ## Basic Information - **Project Name**: mb - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-27 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 目录 - [项目结构](#结构) - [协议定义](#协议定义) - [工具脚本](#工具脚本) - [npm run docker-build](#npm-run-dev-docker-dist) - [npm run docker-deploy](#npm-run-deploy-docker) - [安卓打包](#安卓打包) ## 结构 ``` root/ README.md devs/ tool/ mb/ mb.Droid/ mb.DroidLib/ mb.iOS/ libmp.Shared/ libmp.Android/ libmp.iOS/ ``` - `devs` 服务器,包含用户服务器和同步服务器两部份 - `tools` 各种调试、运行、构建、部署相关的脚本 - `mb*` 主工程 - `libmp*` 热更工程 ## 协议定义 前后端交互通过两种方式进行:http 请求和 websocket 推送 http 用来实现所有的主动式请求,如用户和订单管理等 协议内容使用 swagger 定义: devs/swagger/swagger.yaml websocket 用来实现推送数据,如报价等 协议内容由 typescript 代码直接定义 interface 来描述 ## 工具脚本 脚本都在`tool`目录下,简短的,直接写在 package.json 中以 npm cmd 形式存在 复杂的则写成单独的脚本文件,其中常用的仍应添加相应的 npm cmd 形式 ### `npm run docker-build` ### `npm run deploy-docker` 以 dc-deploy.template 为模板,生成 docker-compose.yml 进行部署 1. 可在本机部署,也可通过 ssh 上传到远程服务器上部署,都要求目标机器安装了 docker/dockercompose,并且已登录 registry,目前为 cz.19v5.com:5555 2. 必须指定 role=sync/user 3. 对于 user 服务器,必须通过环境变量指定 sync 上的 redis 连接地址,现在都在 deploy.json 中定义 nr docker-deploy -s hk --role=sync nr docker-deploy -s 1g --role=user nr docker-deploy -s 4g --role=user ## 安卓打包 mb.Droid下有一个pub.keystore文件,是默认的签名文件,只用于内部安装测试。 如果要对外发部,应使用 ``` nr apk --sign /path/to/your.keystore //or nr apk-flavor -f /path/to/flavor/dir ``` 重新签名。 在签名之前,可以调整apk内的assets文件,以便为不同版本设置差异数据。 目前最重要的是文件是 assets/servers.json,这里面定义了所有初始能连接的服务器 每一个实际发布版都有自己的服务器配置,这些全部通过flavor来实现,flavor都不提交到源代码git里 而放在源码里common下的servers.json只是一个占位文件,里面的内容用于内部测试 #### 关于测试服务器连接性 在macos上可以通过pfctl命令设置防火墙阻断某些ip来测试相关逻辑