-
Notifications
You must be signed in to change notification settings - Fork 448
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(conversation): adjust broadcasted data between tabs #12557
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Solution looks good
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A room
signaling message with roomid: ""
is sent by the signaling server when the current participant leaves a room (as a response to the message sent by the client, note that should-refresh-conversations
is not directly triggered by _doLeaveRoom
as seems to be implied from the second commit message, it is indirectly triggered). However, that message can be sent by the signaling server too to the active participants of a room if that room is deleted.
If the participant is a registered user the client will also receive a roomlist
signaling message with type: "disinvite"
, which will cause a redirection to spreed/not-found
. However, if the particiant is a guest no other signaling message will be received to notify the client about the current room being deleted.
Due to that, if should-refresh-conversations
is not emitted when a room
signaling message with roomid: ""
is sent by the signaling server the UI is not immediately updated for guests when public conversations are deleted (although it will be updated at most after 30 seconds, but that smells like legacy code that might be cleaned at some point).
Similarly, if a video verification conversation is deleted by the moderator without even joining the conversation the UI for the guest will never reflect that the conversation is deleted. If the moderator joins the conversation and then leaves (which automatically deletes the conversation) it will, but only because when the moderator leaves a roomlist
message with type: "update"
will be sent, which will also cause the conversation to be fetched again (and as the conversation is automatically deleted it will no longer exist once the request reaches the server, so the UI will be properly updated on the response).
Would it be possible to emit should-refresh-conversations
even when roomid: ""
but ignore the event in those places in which an update is not needed in that case? Or maybe emit a different event when roomid: ""
that could be explicitly listened to if needed?
Thanks for the review, @danxuliu ! It is indeed more complex problem than it was expected by me 👀 We have 4 emiiters of |
…of conversations - pass options: all to leader tab - do not fetch anything on secondary tabs Signed-off-by: Maksim Sukharev <[email protected]>
Signed-off-by: Maksim Sukharev <[email protected]>
e186594
to
d5d5138
Compare
Aligned with Daniel, as blocking commit is removed
/backport to stable29 |
☑️ Resolves
Fix #12548
options: { all }
to leader tab, when force refresh;🖌️ UI Checklist
🖼️ Screenshots / Screencasts
🏡 After
Screencast.from.21.06.2024.15.58.27.webm
🏁 Checklist