寻宝:信息边窗

This commit is contained in:
luying
2022-07-07 13:27:43 +08:00
parent b1dc091453
commit 460d0d6955
15 changed files with 153 additions and 38 deletions
+17 -8
View File
@@ -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;