mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-07-29 12:42:46 +00:00
Fix newly joined users presence (#2854)
Fixes #2803 Also refactors the presence stream to not hit the database for every user, instead queries all users at once now.
This commit is contained in:
parent
0351618ff4
commit
c136a450d5
11 changed files with 263 additions and 75 deletions
|
@ -78,7 +78,7 @@ func (s *PresenceConsumer) Start() error {
|
|||
// Normal NATS subscription, used by Request/Reply
|
||||
_, err := s.nats.Subscribe(s.requestTopic, func(msg *nats.Msg) {
|
||||
userID := msg.Header.Get(jetstream.UserID)
|
||||
presence, err := s.db.GetPresence(context.Background(), userID)
|
||||
presences, err := s.db.GetPresences(context.Background(), []string{userID})
|
||||
m := &nats.Msg{
|
||||
Header: nats.Header{},
|
||||
}
|
||||
|
@ -89,10 +89,12 @@ func (s *PresenceConsumer) Start() error {
|
|||
}
|
||||
return
|
||||
}
|
||||
if presence == nil {
|
||||
presence = &types.PresenceInternal{
|
||||
UserID: userID,
|
||||
}
|
||||
|
||||
presence := &types.PresenceInternal{
|
||||
UserID: userID,
|
||||
}
|
||||
if len(presences) > 0 {
|
||||
presence = presences[0]
|
||||
}
|
||||
|
||||
deviceRes := api.QueryDevicesResponse{}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue