diff --git a/game-server/app/servers/connector/handler/entryHandler.ts b/game-server/app/servers/connector/handler/entryHandler.ts index a38e0ee59..e21bcffce 100644 --- a/game-server/app/servers/connector/handler/entryHandler.ts +++ b/game-server/app/servers/connector/handler/entryHandler.ts @@ -13,6 +13,7 @@ import { getAp } from '../../../services/actionPointService'; import Actor from '../../../pubUtils/actor'; import { ItemModel } from '../../../db/Item'; import { switchOnFunc } from '../../../services/funcSwitchService'; +import { stat } from 'fs'; export default function (app: Application) { return new EntryHandler(app); @@ -43,7 +44,8 @@ export class EntryHandler { if (!role) { return resResult(STATUS.ROLE_NOT_FOUND); } - sessionService.kick(role.roleId);//踢掉之前登录的账号code:1005 + self.remoteLogin(role.roleId); + await sessionService.akick(role.roleId);//踢掉之前登录的账号code:1005 await session.abind(role.roleId); session.set('uid', role.roleId); session.set('roleId', role.roleId); @@ -91,6 +93,18 @@ export class EntryHandler { return resResult(STATUS.SUCCESS, { role }); } + remoteLogin(uid: string) { + let sessionService = this.app.get('sessionService'); + let sessions = sessionService.getByUid(uid); + if (!!sessions) { + sessions.forEach(session=>{ + let roleId = session.get('roleId'); + let sid = session.get('sid'); + let uids = [{uid: roleId, sid}]; + this.app.get('channelService').pushMessageByUids('onRemoteLogin', resResult(STATUS.LOGIN_ERR ), uids); + }); + } + } /** * User log out handler * @@ -98,7 +112,7 @@ export class EntryHandler { * @param {Object} session current session object * */ - onUserLeave(session: FrontendSession) { + onUserLeave(session: FrontendSession, reason: string) { if (!session || !session.uid) { return; } @@ -110,7 +124,6 @@ export class EntryHandler { let channelService = this.app.get('channelService'); let channel = channelService.getChannel(roleId, true); channel.leave(roleId, sid); - this.app.rpc.battle.battleRemote.kick.route(session)(roleId, this.app.get('serverId'), serverId); // this.app.rpc.chat.chatRemote.kick.route(session, true)(session.uid, this.app.get('serverId'), session.get('rid')); }