Don't need all users in requests from Talk - #1175
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1175 +/- ##
==========================================
+ Coverage 62.94% 63.01% +0.07%
==========================================
Files 129 129
Lines 18888 18915 +27
==========================================
+ Hits 11889 11920 +31
+ Misses 5894 5891 -3
+ Partials 1105 1104 -1
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
b2b8bf5 to
3d2893e
Compare
|
@danxuliu This implements the receiving part (i.e. Talk -> Signaling Server). A couple of open issues:
Also the signaling server still includes all participants in the updates events it sends out to connected sessions triggered by |
|
@nickvergessen FYI, you might also have some ideas on the open issues. |
|
@fancycode to not break, the Talk code would need to know whether the HPB has this feature. Can you add a new feature header? |
3d2893e to
b739a33
Compare
Rebased and added as If we add more features in the future that are only relevant for the Talk backend, I should split them up so the clients don't receive feature ids they don't need. |
Removes the requirement for Talk to include the ids of all users invited to the room.
Removes the requirement for Talk to include all invited userids in the backend request.
b739a33 to
83bb923
Compare
danxuliu
left a comment
There was a problem hiding this comment.
A couple of issues:
- If in a conversation there is only one active participant and that participant starts a call, the client receives a
participants->updatesignaling message with the participant duplicated inusers, although in one case withinCall: 0and in the otherinCall: 7 - The signaling server now keeps track of the participants to include them in
participants->updatewhen they are in a call. However,participants->updatewill include any active participant whoseinCallchanged at some point, even after they left the call (wheninCallbecomes 0 it should be included, but it should not be necessary to keep including them in further messages ifinCallis still 0).- The participants will be included also if the
participants->updateis unrelated to a call. For example, if the permissions of a participant change the signaling message will include not only the participant whose permissions changed, but any other participant that are or were at some point in a call. - These extra/unneeded participants should™ not be problematic, but it caught my eye and I wondered if it was intended/expected.
- The participants will be included also if the
|
Talk side is merged, and toggles behaviour based on the capability. But then this would be good to get merged and release (or test packaged) so we can put it live? :) |
I saw this once yesterday while testing but can't reproduce any more. A user should only be included once and only with the latest properties. Does this happen every time for you?
This is from my comment above, for backwards compatibility:
|
Ah, it happens when starting a call, leaving the call, reloading the conversation and starting a call again. So the duplicated user with
What I had understood (and expected) from that comment was that the signaling server would keep track of the participants in a conversation and send them in However, the signaling server only seems to keep track of the participants that were active in a call. So in the mentioned example Similarly, when the Nextcloud server provided the changed participants in a call, the As mentioned before those extra participants should not be problematic but, at the same time, they should not be needed either. Having said that, if that behaviour is intended/expected, then no problem 👍 |
Still can't reproduce using these steps. When the conversation is reloaded (assuming a reload in the browser), the session is removed and the previous user entry gets removed: Even if I manually delay the backend request from Talk to set
So you mean, the
As commented above, user information for sessions that were deleted should not be included in future |
Resolves #1173