登陆:玩家在线情况redis改为hash格式

This commit is contained in:
luying
2021-03-04 14:55:08 +08:00
parent 578b890630
commit d4561c2e3d
12 changed files with 131 additions and 67 deletions

View File

@@ -13,7 +13,7 @@ import { ItemModel } from '../../../db/Item';
import { chackFunOpenWhenLogin } from '../../../services/funcSwitchService';
import { loginRefresh } from '../../../services/playerEventService';
import { nowSeconds } from '../../../pubUtils/timeUtil';
import { getRedis, setRedis, delRedis, rmRoleFromQueue, redisSidKey } from '../../../services/redisService';
import { rmRoleFromQueue, roleLeave, getRoleOnlineInfo, roleLogin } from '../../../services/redisService';
import { UserGuildModel } from '../../../db/UserGuild';
import { GuildModel } from '../../../db/Guild';
import { gameData } from '../../../pubUtils/data';
@@ -47,13 +47,14 @@ export class EntryHandler {
if (!role) {
return resResult(STATUS.ROLE_NOT_FOUND);
}
let key = redisSidKey(role.roleId);
let connect = await getRedis(key);
if (!!connect) {
await self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect, role.roleId);
let connect = await getRoleOnlineInfo(role.roleId);
if (connect.isOnline) { // 多地登陆踢下线
await self.app.rpc.connector.connectorRemote.remoteLogin.toServer(connect.sid, role.roleId);
}
let serverName = this.app.getServerId();
setRedis(key, serverName);
await roleLogin(role.roleId, user.userCode, serverName); // 保存在线用户
await session.abind(role.roleId);
session.set('uid', role.roleId);
session.set('roleId', role.roleId);
@@ -139,8 +140,7 @@ export class EntryHandler {
let roleId = session.get('roleId');
let sid = session.get('sid');
let serverId = session.get('serverId');
let key = redisSidKey(roleId);
delRedis(key);
roleLeave(roleId);
rmRoleFromQueue(roleId, sid, COM_BTL_QUALITY, null); // 删除redis中寻宝的匹配记录
let channelService = this.app.get('channelService');
let channel = channelService.getChannel(roleId, true);