远程登录
This commit is contained in:
@@ -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'));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user