远程登录
This commit is contained in:
@@ -13,6 +13,7 @@ import { getAp } from '../../../services/actionPointService';
|
|||||||
import Actor from '../../../pubUtils/actor';
|
import Actor from '../../../pubUtils/actor';
|
||||||
import { ItemModel } from '../../../db/Item';
|
import { ItemModel } from '../../../db/Item';
|
||||||
import { switchOnFunc } from '../../../services/funcSwitchService';
|
import { switchOnFunc } from '../../../services/funcSwitchService';
|
||||||
|
import { stat } from 'fs';
|
||||||
|
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
return new EntryHandler(app);
|
return new EntryHandler(app);
|
||||||
@@ -43,7 +44,8 @@ export class EntryHandler {
|
|||||||
if (!role) {
|
if (!role) {
|
||||||
return resResult(STATUS.ROLE_NOT_FOUND);
|
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);
|
await session.abind(role.roleId);
|
||||||
session.set('uid', role.roleId);
|
session.set('uid', role.roleId);
|
||||||
session.set('roleId', role.roleId);
|
session.set('roleId', role.roleId);
|
||||||
@@ -91,6 +93,18 @@ export class EntryHandler {
|
|||||||
return resResult(STATUS.SUCCESS, { role });
|
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
|
* User log out handler
|
||||||
*
|
*
|
||||||
@@ -98,7 +112,7 @@ export class EntryHandler {
|
|||||||
* @param {Object} session current session object
|
* @param {Object} session current session object
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
onUserLeave(session: FrontendSession) {
|
onUserLeave(session: FrontendSession, reason: string) {
|
||||||
if (!session || !session.uid) {
|
if (!session || !session.uid) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -110,7 +124,6 @@ export class EntryHandler {
|
|||||||
let channelService = this.app.get('channelService');
|
let channelService = this.app.get('channelService');
|
||||||
let channel = channelService.getChannel(roleId, true);
|
let channel = channelService.getChannel(roleId, true);
|
||||||
channel.leave(roleId, sid);
|
channel.leave(roleId, sid);
|
||||||
|
|
||||||
this.app.rpc.battle.battleRemote.kick.route(session)(roleId, this.app.get('serverId'), serverId);
|
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'));
|
// this.app.rpc.chat.chatRemote.kick.route(session, true)(session.uid, this.app.get('serverId'), session.get('rid'));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user