livekit / client-sdk-swift

LiveKit Swift Client SDK. Easily build live audio or video experiences into your mobile app, game or website.
https://livekit.io
Apache License 2.0
174 stars 84 forks source link

Integrate E2EE Manager #338

Closed hiroshihorie closed 2 weeks ago

hiroshihorie commented 4 months ago

New design:

lukasIO commented 4 months ago

I like the idea behind this! How would the new design allow for encryption to be enabled/disabled ?

hiroshihorie commented 4 months ago

I haven't ported that from E2EE manager yet, also the delegate.

hiroshihorie commented 4 months ago

Build with this changes have been uploaded to tesflight.

lukasIO commented 4 months ago

more of a general question, would it make sense to un-set the cryptors also when tracks have ended ? Basically just thinking about how this would get cleaned up properly

hiroshihorie commented 4 months ago

A good point regarding cleaning up the cryptors and other properties of the track. Currently sender/receivers and cryptors will be reset if track is re-published.

I'll check how FrameCryptor retains reference to keyprovider etc. But looks like there are no memory leaks when the Room is closed.

While publishing video / mic:

Screenshot 2024-02-15 17 48 00

After room is closed:

Screenshot 2024-02-15 17 50 23
lukasIO commented 4 months ago

Nice, thanks for checking! Is the same true for unpublishing a single track instead of disconnecting the room? Thinking about cases where users publish/unpublish tracks often.

hiroshihorie commented 4 months ago

Thanks, might need to re-structure/design this.