Files
ZYZ/game-server/app/servers/gate/handler/gateHandler.ts
2020-10-23 18:05:46 +08:00

40 lines
1.3 KiB
TypeScript

import { STATUS } from './../../../consts/statusCode';
import { dispatch } from '../../../util/dispatcher';
import { Application , BackendSession} from 'pinus';
import { resResult } from '../../../pubUtils/util';
export default function (app: Application) {
return new GateHandler(app);
}
export class GateHandler {
constructor(private app: Application) {
}
/**
* Gate handler that dispatch user to connectors.
*
* @param {Object} msg message from client
* @param {Object} session
*
*/
async queryEntry(msg: {userCode: string}, session: BackendSession) {
let { userCode } = msg;
if (!userCode) {
return resResult(STATUS.WRONG_PARMS);
}
// get all connectors
let connectors = this.app.getServersByType('connector');
console.log(connectors);
if (!connectors || connectors.length === 0) {
return resResult(STATUS.CONNECTOR_ERR);
}
// select connector
let res = dispatch(userCode, connectors);
if(process.env.NODE_ENV=='local') {
return resResult(STATUS.SUCCESS, {host: '127.0.0.1', port: res.clientPort});
} else {
return resResult(STATUS.SUCCESS, {host: res.clientHost, port: res.clientPort});
}
}
}