const express = require('express'); const os = require('os'); const readline = require('readline'); const Base64 = require('js-base64'); const CryptoJS = require("crypto-js"); const http = require("http"); const { build, buildAndroid, buildIos } = require('./buildCocos'); const networkInfo = os.networkInterfaces(); let host = ''; for (const infos of Object.values(networkInfo)) { for (const info of infos) { if (info.family == 'IPv4') { if (info.address.split('.')[0] != "127") { host = info.address; } } } } var app = express(); // Access-Control-Allow-Origin: * app.use('/dist', express.static('dist')); app.get('/', function (req, res) { res.header("Access-Control-Allow-Origin", "*"); res.send('Hello World'); }); app.get('/getSign', function (req, res) { res.header("Access-Control-Allow-Origin", "*"); const gameId = req.query.gameId; const openId = req.query.openId; const secretKey = "060d81c7abaf24c8ce2afc5a725c152062676d35"; //替换为控制台上的 游戏 Key const nonce = Math.floor(Math.random() * 1000000000); const timestamp = Math.floor(new Date().getTime() / 1000); const str = `game_id=${gameId}&nonce=${nonce}&open_id=${openId}×tamp=${timestamp}`; const sign = CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA1(str, secretKey)); res.send(JSON.stringify({ nonce, timestamp, sign })); }); // app.get('/jump', function (req, res) { // res.header("Access-Control-Allow-Origin", "*"); // const gameId = req.query.gameId; // const openId = req.query.openId; // http.get({ // hostname: 'staging-teach.ireadabc.com', // port: 80, // path: `/api/oxford/game/v1/config?gameid=${gameId}&openid=${openId}`, // agent: false // 仅为这个请求创建新代理 // }, (getres) => { // getres.setEncoding('utf8'); // let rawData = ''; // getres.on('data', (chunk) => { rawData += chunk; }); // getres.on('end', () => { // const secretKey = "060d81c7abaf24c8ce2afc5a725c152062676d35"; //替换为控制台上的 游戏 Key // const data = JSON.parse(rawData); // const str = `game_id=${gameId}&nonce=${data.nonce}&open_id=${openId}×tamp=${data.timestamp}`; // const sign = CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA1(str, secretKey)); // console.log('sign = ' + sign); // res.send(rawData) // }); // }); // }); let port = ''; var server = app.listen(8081, function () { port = server.address().port console.log("测试服务已启动:%s:%s", host, port) console.log("如果已经build可访问如下地址"); console.log("http://%s:%s/dist/play/index.html", host, port) console.log("http://%s:%s/dist/play/index.html", "localhost", port) console.log('-----------------'); console.log(" 输入 build 构建安卓脚本"); console.log(" 输入 build ios 构建IOS脚本"); console.log('-----------------'); }) const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) rl.on('line', async (str) => { if (str.trim() == 'build') { await buildAndroid(); } else if (str.trim() == 'build ios') { await buildIos(); } console.log("服务器:%s:%s", host, port) })