40 lines
1.3 KiB
TypeScript
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});
|
|
}
|
|
}
|
|
} |