Comments (11)
Here's a view into redis for the room, all but 1 of these participants is still connected (the windows where these connections originated have already closed)
from livekit.
And the room object returned by the connect
call reports a participants
property of size 926
from livekit.
I even restarted the machine where the connections originated and they're still there
from livekit.
Abe, this is working by design. These redis values are private to LiveKit internals and you should not depend on them as any indication of the client being present. The values clear out after 24h.
To get room state, please call listRoom/listParticipant APIs on RoomService
from livekit.
So I shouldn't be using this https://github.com/livekit/client-sdk-js/blob/main/src/room/Room.ts#L39 to list participants in a call? When I check that property, it includes all those participants that already disconnected
from livekit.
yes, that property should not contain participants that have disconnected.. that may very well be a bug. In this ticket though, you are describing redis state, which is not how that field gets populated.
from livekit.
yeah, I was outlining the issue on the server side as a way to provide some insight into why that property might include disconnected participants, but to your point its not relevant to how that field is populated
from livekit.
are you seeing room participants not clearing? hmm I can't seem to reproduce that. Let me know how I might be able to reproduce this.
Do you have logs showing participantDisconnected
?
from livekit.
Right, the room has participants that wont clear.
You can try to join the room that has dead participants in it here https://livespot.co/session/c9e77293-f854-473c-b7cb-ca101743eb01
Eventually the connection will succeed, it takes a long time to connect after a bunch of retries since we updated to the latest version but that might be a different bug.
If you look at the response from the join message, there are tons of participants getting return that are most definitely not connected
from livekit.
I see, that's definitely not right if the participants are no longer around:
- how are these participants connecting? are these actual livekit clients? or bots?
- how did you trigger a disconnect?
from livekit.
- Almost all of those are actual clients. Some of them are "logged out users" which just means someone who hasn't logged into livespot but wants to stream a call. We generate a random
identity
value for them - Disconnects are not always explicitly handled because some people click leave call, and some people just close their window. If they close their window (or refresh), we try to call
unpublishTracks
on any tracks they're publishing and move on.
I don't think there's an explicit disconnect method on the js client.
from livekit.
Related Issues (20)
- Noticeable lag when trying to share a local video window HOT 1
- On Android device, when a user first joining the room, its resolution is very low until 10-15 seconds. HOT 1
- VM Deploy Requires Domain HOT 1
- Share screen functionality not working while building a client application using livekit HOT 1
- audio issue if user dont have ipv6 HOT 4
- Livekit randomly crashing in between meetings HOT 1
- Docker hub has incorrect tag v1.10.6 published HOT 1
- How to get remote is not presenting? HOT 1
- request 'DeleteRoom Service' timeout HOT 2
- LiveKit runs into timeouts after a Redis restart HOT 7
- Could not fetch region settings: livekit HOT 2
- Missing Change Speaker Functionality HOT 1
- api_key is required to use webhooks HOT 1
- Connection failing on Safari when connecting via TCP HOT 1
- No documentation about what redis ACL rules are needed by LiveKit server
- 1.5.3 release was not completed HOT 2
- LiveKit and redis > 7 support
- FEATURE REQUEST HOT 2
- Noticeable lag when trying to share a local video window HOT 3
- How to switch to the rear camera of the mobile phone instead of using the default front camera of the mobile phone HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from livekit.