Files
ZYZ/game-server/app/servers/gate/handler/gateHandler.ts
2020-09-08 19:59:19 +08:00

41 lines
1.0 KiB
TypeScript

import { dispatch } from '../../../util/dispatcher';
import { Application , BackendSession} from 'pinus';
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: {uid: string}, session: BackendSession) {
let uid = msg.uid;
if (!uid) {
return {
code: 500
};
}
// get all connectors
let connectors = this.app.getServersByType('connector');
if (!connectors || connectors.length === 0) {
return {
code: 500
};
}
// select connector
let res = dispatch(uid, connectors);
return {
code: 200,
host: res.clientHost,
port: res.clientPort
};
}
}