登录:当账号登录的时候,将已登录玩家踢下
This commit is contained in:
@@ -9,7 +9,7 @@ import { genCode, generateStr, resResult } from '../../../pubUtils/util';
|
||||
import { COM_BTL_QUALITY, HERO_SELECT, DEBUG_MAGIC_WORD, REDIS_KEY, TASK_TYPE, ENTERY_ROLE_PICK, COUNTER, DEFAULT_LV, TA_USERSET_TYPE, LOG_TYPE, JEWEL_SELECT, ITEM_SELECT, SKIN_SELECT, PUSH_ROUTE } from '../../../consts';
|
||||
// import { loginRefresh } from '../../../services/playerEventService';
|
||||
import { nowSeconds, getZeroPoint } from '../../../pubUtils/timeUtil';
|
||||
import { rmRoleFromQueue, roleLeave, getRoleOnlineInfo, roleLogin } from '../../../services/redisService';
|
||||
import { rmRoleFromQueue, roleLeave, getRoleOnlineInfo, roleLogin, getOnlineRoleByUserCode } from '../../../services/redisService';
|
||||
|
||||
import { addRoleToGuildChannel, addRoleToSysChannel, addRoleToWorldChannel, leaveGuildAuctionChannel, leaveGuildChannel, leaveSysChannel, leaveWorldAuctionChannel, leaveWorldChannel, recentGuildMsgs, recentPrivateChatInfos, recentSysMsgs, recentWorldMsgs } from '../../../services/chatService';
|
||||
import { reportOneOnline, savePlayTime } from '../../../services/authenticateService';
|
||||
@@ -47,21 +47,22 @@ export class EntryHandler {
|
||||
console.log('user token not found');
|
||||
return resResult(STATUS.TOKEN_ERR);
|
||||
}
|
||||
let onlineRoleId = await getOnlineRoleByUserCode(user.userCode);
|
||||
|
||||
if (!!onlineRoleId) { // 多地登陆踢下线
|
||||
let connect = await getRoleOnlineInfo(onlineRoleId);
|
||||
if (connect.sid = self.app.getServerId()) {
|
||||
await kickUser(self.app, onlineRoleId);
|
||||
} else {
|
||||
await self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect.sid, onlineRoleId);
|
||||
}
|
||||
}
|
||||
|
||||
let role = await RoleModel.findByUidAndSetTime(user.uid, serverId, null, true);
|
||||
if (!role) {
|
||||
return resResult(STATUS.ROLE_NOT_FOUND);
|
||||
}
|
||||
|
||||
let connect = await getRoleOnlineInfo(role.roleId);
|
||||
|
||||
if (connect.isOnline) { // 多地登陆踢下线
|
||||
if (connect.sid = self.app.getServerId()) {
|
||||
await kickUser(self.app, role.roleId);
|
||||
} else {
|
||||
await self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect.sid, role.roleId);
|
||||
}
|
||||
}
|
||||
let serverName = this.app.getServerId();
|
||||
await roleLogin(role.roleId, user.userCode, serverName, user.pkgName, role.createTime, role.serverId); // 保存在线用户
|
||||
await this.addSession(user, role, session);
|
||||
|
||||
Reference in New Issue
Block a user