online cache

pull/2393/head
withchao 1 year ago
parent 1bfaf3e2d9
commit dcd874979e

@ -118,12 +118,12 @@ func (u *userMap) DeleteClients(userID string, clients []*Client) (isDeleteUser
tmp := result.Clients tmp := result.Clients
result.Clients = result.Clients[:0] result.Clients = result.Clients[:0]
for _, client := range tmp { for _, client := range tmp {
if _, ok := deleteAddr[client.ctx.GetRemoteAddr()]; ok { if _, delCli := deleteAddr[client.ctx.GetRemoteAddr()]; delCli {
continue
}
offline = append(offline, int32(client.PlatformID)) offline = append(offline, int32(client.PlatformID))
} else {
result.Clients = append(result.Clients, client) result.Clients = append(result.Clients, client)
} }
}
defer u.push(userID, result, offline) defer u.push(userID, result, offline)
if len(result.Clients) > 0 { if len(result.Clients) > 0 {
return false return false

@ -51,11 +51,8 @@ func NewOnlineCache(user rpcclient.UserRpcClient, group *GroupLocalCache, rdb re
log.ZError(ctx, "OnlineCache redis subscribe parseUserOnlineStatus", err, "payload", message.Payload, "channel", message.Channel) log.ZError(ctx, "OnlineCache redis subscribe parseUserOnlineStatus", err, "payload", message.Payload, "channel", message.Channel)
continue continue
} }
log.ZDebug(ctx, "OnlineCache setUserOnline", "userID", userID, "platformIDs", platformIDs, "payload", message.Payload) storageCache := x.setUserOnline(userID, platformIDs)
x.setUserOnline(userID, platformIDs) log.ZDebug(ctx, "OnlineCache setUserOnline", "userID", userID, "platformIDs", platformIDs, "payload", message.Payload, "storageCache", storageCache)
//if err := x.setUserOnline(ctx, userID, platformIDs); err != nil {
// log.ZError(ctx, "redis subscribe setUserOnline", err, "payload", message.Payload, "channel", message.Channel)
//}
} }
}() }()
return x return x
@ -115,10 +112,10 @@ func (o *OnlineCache) GetGroupOnline(ctx context.Context, groupID string) ([]str
onlineUserIDs = append(onlineUserIDs, userID) onlineUserIDs = append(onlineUserIDs, userID)
} }
} }
log.ZDebug(ctx, "OnlineCache GetGroupOnline", "groupID", groupID, "onlineUserIDs", onlineUserIDs) log.ZDebug(ctx, "OnlineCache GetGroupOnline", "groupID", groupID, "onlineUserIDs", onlineUserIDs, "allUserID", userIDs)
return onlineUserIDs, nil return onlineUserIDs, nil
} }
func (o *OnlineCache) setUserOnline(userID string, platformIDs []int32) { func (o *OnlineCache) setUserOnline(userID string, platformIDs []int32) bool {
o.local.SetHas(o.getUserOnlineKey(userID), platformIDs) return o.local.SetHas(o.getUserOnlineKey(userID), platformIDs)
} }

Loading…
Cancel
Save