react-native 自定义服务器实现热更新

474 阅读1分钟

前言

公司最近要采用react-native开发App,并且实现热更新。网上一查,微软的react-native-code-push框架,功能全面,支持增量更新。 心想,这么快就解决了吗?然后事情并没这么简单,由于我司产品用于内网环境中,react-native-code-push的服务器是外网。因此只能搭建自己的热更新服务器,最终通过code-push-server实现。

首先搭建属于自己的热更新服务器

1. 安装mysql(推荐安装5.7的版本)

2. 安装code-push-server

  • 拉取code-push-server服务
 git clone https://github.com/lisong/code-push-server.git
 cd code-push-server
 npm install
  • 初始化数据库
code-push-server-db init --dbhost "your mysql host" --dbport "your mysql port"  --dbuser "your mysql user" --dbpassword "your mysql password"

or

./bin/db init --dbhost "your mysql host" --dbport "your mysql port"  --dbuser "your mysql user" --dbpassword "your mysql password"

output: success

  • 配置code-push-server(楼主装在linux上的,windows一样,windows推荐pm2守护进程)
// /config/config.js
// 配置mysql数据库
db: {
    username: process.env.RDS_USERNAME || "root",
    password: process.env.RDS_PASSWORD || "root",
    database: process.env.DATA_BASE || "codepush",
    host: process.env.RDS_HOST || "127.0.0.1",
    port: process.env.RDS_PORT || 3306,
    dialect: "mysql",
    logging: false,
    operatorsAliases: false,
  },
  // 我采用的是本地储存,还有qiniu,upyun,Amazon s3,Aliyun OSS,tencentcloud等可供选择
  local: {
    // Binary files storage dir, Do not use tmpdir and it's public download dir.
    storageDir: process.env.STORAGE_DIR || "/code-push/data",
    // Binary files download host address which Code Push Server listen to. the files storage in storageDir.
    downloadUrl: process.env.LOCAL_DOWNLOAD_URL || "http://127.0.0.1:3000/download",
    // public static download spacename.
    public: '/download'
  }

除此之外这个cofig文件还可以配置redis,搭配redis食用效果更佳

  • 好了接下来启动服务
// 项目根目录下
node ./bin/www &
  • 检查是否启动成功
curl -I http://127.0.0.1:3000/

return HTTP/1.1 200 OK

网页查看

默认用户admin默认密码123456(保存得到的token)

然后配置react-native项目