寻宝:信息边窗
This commit is contained in:
@@ -310,10 +310,17 @@ export async function clearChannelServers() {
|
||||
* @param userCode user表唯一字符串标识
|
||||
* @param sid connector服的那个sid
|
||||
*/
|
||||
export async function roleLogin(roleId: string, userCode: string, sid: string, pkgName: string, createTime: number, serverId: number) {
|
||||
export async function roleLogin(roleId: string, userCode: string, sid: string, createTime: number, serverId: number, lv: number, topLineupCe: number) {
|
||||
await redisClient().hincrbyAsync(REDIS_KEY.ONLINE_CNT, roleId, 1);
|
||||
await redisClient().hsetAsync(REDIS_KEY.USER_CODE, userCode, roleId);
|
||||
return await redisClient().hsetAsync(REDIS_KEY.ONLINE_USERS, roleId, `${userCode}|${sid}|${pkgName}|${createTime}|${serverId}`);
|
||||
return await redisClient().hsetAsync(REDIS_KEY.ONLINE_USERS, roleId, `${userCode}|${sid}|${createTime}|${serverId}|${lv}|${topLineupCe}`);
|
||||
}
|
||||
|
||||
export async function updateRoleOnlineInfo(roleId: string, updateData: {lv?: number, topLineupCe?: number}) {
|
||||
let info = await getRoleOnlineInfo(roleId);
|
||||
if(info.isOnline) {
|
||||
return await redisClient().hsetAsync(REDIS_KEY.ONLINE_USERS, roleId, `${info.userCode}|${info.sid}|${info.createtime}|${info.serverId}|${updateData?.lv??info.lv}|${updateData?.topLineupCe??info.topLineupCe}`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -354,11 +361,13 @@ export async function getRoleOnlineInfo(roleId: string) {
|
||||
if(str) {
|
||||
try {
|
||||
let result = str.split('|');
|
||||
let [userCode, sid, pkgName, createTime, serverId] = result;
|
||||
let [userCode, sid, createTime, serverId, lv, topLineupCe] = result;
|
||||
return {
|
||||
isOnline: true, userCode, sid, pkgName,
|
||||
isOnline: true, userCode, sid,
|
||||
createtime: parseInt(createTime),
|
||||
serverId: parseInt(serverId)
|
||||
serverId: parseInt(serverId),
|
||||
lv: parseInt(lv),
|
||||
topLineupCe: parseInt(topLineupCe)
|
||||
}
|
||||
} catch(e) {
|
||||
return { isOnline: false }
|
||||
@@ -385,13 +394,13 @@ export async function getRoleCreateTime(roleId: string, role?: RoleType) {
|
||||
*/
|
||||
export async function getAllOnlineRoles() {
|
||||
let allRoles = await redisClient().hgetallAsync(REDIS_KEY.ONLINE_USERS);
|
||||
let result = new Array<{roleId: string, userCode: string, sid: string, pkgName: string, serverId: number}>();
|
||||
let result = new Array<{roleId: string, userCode: string, sid: string, serverId: number, lv: number, topLineupCe: number}>();
|
||||
for(let roleId in allRoles) {
|
||||
try{
|
||||
let param = allRoles[roleId].split('|');
|
||||
let [userCode, sid, pkgName, _createTime, serverId] = param;
|
||||
let [userCode, sid, _createTime, serverId, lv, topLineupCe] = param;
|
||||
|
||||
result.push({ roleId, userCode, sid, pkgName, serverId: parseInt(serverId) });
|
||||
result.push({ roleId, userCode, sid, serverId: parseInt(serverId), lv: parseInt(lv), topLineupCe: parseInt(topLineupCe) });
|
||||
|
||||
} catch(e) {
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user