防沉迷:定时任务

This commit is contained in:
luying
2021-03-04 20:36:59 +08:00
parent 32bb6cb2e3
commit 8a122b6a4d
11 changed files with 141 additions and 32 deletions

View File

@@ -10,6 +10,7 @@ import { SystemConfigModel } from '../db/SystemConfig';
import { GuildRankParam, GuildLeader, RankParam } from '../domain/rank';
import { GuildModel } from '../db/Guild';
import { comBtlRanges } from '../pubUtils/gamedata';
import { stringify } from 'querystring';
/**
* 在服务重新启动时将信息存入redis
*/
@@ -369,9 +370,9 @@ export function redisSidKey(roleId: string) {
* @param userCode user表唯一字符串标识
* @param sid connector服的那个sid
*/
export async function roleLogin(roleId: string, userCode: string, sid: string) {
export async function roleLogin(roleId: string, userCode: string, sid: string, pkgName: string) {
const client: Redis.RedisClient = pinus.app.get('redis');
let param = { userCode, sid };
let param = { userCode, sid, pkgName };
return await client.hsetAsync(REDIS_KEY.ONLINE_USERS, roleId, JSON.stringify(param));
}
@@ -407,7 +408,8 @@ export async function getRoleOnlineInfo(roleId: string) {
return {
isOnline: true,
userCode: result.userCode,
sid: result.sid
sid: result.sid,
pkgName: result.pkgName
}
} catch(e) {
return { isOnline: false }
@@ -423,7 +425,18 @@ export async function getRoleOnlineInfo(roleId: string) {
export async function getAllOnlineRoles() {
const client: Redis.RedisClient = pinus.app.get('redis');
let allRoles = await client.hgetallAsync(REDIS_KEY.ONLINE_USERS);
return allRoles;
let result = new Array<{roleId: string, userCode: string, sid: string, pkgName: string}>();
for(let roleId in allRoles) {
try{
let param = JSON.parse(allRoles[roleId]);
if(param) {
result.push({ roleId, userCode: param.userCode, sid: param.sid, pkgName: param.pkgName });
}
} catch(e) {
continue;
}
}
return result;
}
export async function resetPvpRanks() {