livekit
livekit copied to clipboard
Feature request: Option to reject outdated clients
It would be nice to have a server-side option to reject clients that are out of date. Thought it'd be great if this could be done by the client version itself, I imagine it would need to be done by protocol version instead to avoid having to track each individual client SDK's version.
Perhaps something like MinClientSdk that could be set and would return a connection error to any client that attempted to connect outside of the specified version?
I think we can deprecate lower protocol versions? We can remove support for protocol 2 in the next minor server update, and it could just reject the connection in that case. wdyt?
I think it would be nice for that to be configurable as well.
My use case:
- Clients connect to my hosted livekit-server cluster using a JS client that is distributed via a packaging system for Foundry VTT.
- There's no forced update mechanism, so it's possible that some users haven't updated yet.
- There were some pretty major changes to simulcast/dynacast in recent SDK versions (which included a protocol bump). These changes fairly significantly reduce bandwidth usage.
- If it were possible, I'd set a protocol limit w/ a custom error message that would instruct the users to update their client in order to connect.
The same config could be used for your own deprecation when you stop supporting older protocol version, it could just be made configurable for server operators to make the limit higher than the default.
Long term, I can build this in when I start supporting my own auth server that the clients connect to first - but if it could be done with livekit server it'd be faster for me to implement it and start blocking those older clients right now.
This makes sense.. we can probably define something like this in the config and provide a clear reason when a user connects but is rejected.