123 lines
2.9 KiB
JavaScript
123 lines
2.9 KiB
JavaScript
const axios = require('axios').default;
|
|
const parseArgs = require('minimist');
|
|
const ClientNet = require('./clientnet');
|
|
|
|
function getTickCount() {
|
|
return Math.floor((new Date()).getTime() / 1);
|
|
}
|
|
|
|
function getArgv(name, def = null) {
|
|
const argv = parseArgs(process.argv.slice(2), opts = {
|
|
string: [name]
|
|
});
|
|
return argv[name] ? argv[name] : def;
|
|
}
|
|
|
|
function httpGet(url, params) {
|
|
return new Promise((resolve) => {
|
|
const ret = {
|
|
err: null,
|
|
response: null,
|
|
};
|
|
axios({
|
|
method: 'get',
|
|
url: url,
|
|
timeout: 1000 * 5,
|
|
params: params,
|
|
responseType: 'text'
|
|
}).then((response) => {
|
|
ret.response = response.data;
|
|
resolve(ret);
|
|
}).catch((error) => {
|
|
ret.err = error;
|
|
resolve(ret);
|
|
});
|
|
});
|
|
}
|
|
|
|
async function sleep(timeout) {
|
|
return new Promise(function (resolve, reject) {
|
|
setTimeout(function () {
|
|
resolve();
|
|
}, timeout);
|
|
});
|
|
}
|
|
|
|
class TestCase {
|
|
|
|
constructor(url) {
|
|
this.relationUrl = getArgv('h');
|
|
console.log(this.relationUrl);
|
|
this.openId = getArgv('u');
|
|
this.protoDir = getArgv('d');
|
|
this.loginData = null;
|
|
this.userData = null;
|
|
console.log(this.protoDir);
|
|
this.relationWs = new ClientNet(
|
|
this.relationUrl,
|
|
this.protoDir + 'proto/cs_proto.proto',
|
|
this.protoDir + 'proto/cs_msgid.proto'
|
|
);
|
|
}
|
|
|
|
async init() {
|
|
await this.step1();
|
|
await this.step2();
|
|
await this.step3();
|
|
while (true) {
|
|
await sleep(1000 * 3);
|
|
}
|
|
}
|
|
|
|
async step1() {
|
|
const startTick = getTickCount();
|
|
const {err, response} = await httpGet(
|
|
'https://login-test.kingsome.cn/webapp/index.php',
|
|
{
|
|
'c': 'Login',
|
|
'a': 'auth',
|
|
'gameid': 2006,
|
|
'channel': 6513,
|
|
'openid': this.openId
|
|
});
|
|
this.loginData = response;
|
|
const endTick = getTickCount();
|
|
//console.log('login auth@Login', endTick - startTick, String(err), response);
|
|
}
|
|
|
|
async step2() {
|
|
const startTick = getTickCount();
|
|
const {err, response} = await httpGet(
|
|
'https://game2006api-test.kingsome.cn/webapp/index.php',
|
|
{
|
|
'c': 'User',
|
|
'a': 'login',
|
|
'account_id': this.loginData.account_id,
|
|
'session_id': this.loginData.session_id,
|
|
});
|
|
this.userData = response;
|
|
const endTick = getTickCount();
|
|
console.log('login auth@User', endTick - startTick, String(err), response);
|
|
}
|
|
|
|
async step3() {
|
|
await this.relationWs.init();
|
|
await this.relationWs.connect();
|
|
this.relationWs.on('connect', () => {
|
|
console.log('relation onConnect');
|
|
this.relationWs.accountId = this.loginData['account_id'];
|
|
this.relationWs.sessionId = this.loginData['session_id'];
|
|
this.relationWs.sendMsg('CMLogin', {
|
|
account_id: this.loginData['account_id'],
|
|
session_id: this.loginData['session_id'],
|
|
create_team_param: {
|
|
map_id: 2003
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = TestCase;
|