Files
ZYZ/game-server/app/servers/gate/handler/gateHandler.ts
2020-10-19 17:31:45 +08:00

36 lines
1.1 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);
return resResult(STATUS.SUCCESS, {host: res.clientHost, port: res.clientPort});
}
}