Hi everyone,
I’ve been building a real-time collaboration app using the LiveKit Swift SDK for iOS, and while the integration is generally rock-solid, I’ve hit a specific snag with track hydration when the device is under heavy load.
I’ve noticed that when the iPhone is under heavy resource pressure—specifically when I’m running several background executors or testing the arceus roblox environment for its multi-threading performance—the trackSubscribed event occasionally fails to fire. Even though the participant shows as connected in the room state, the audio and video tracks never seem to resolve. While I was discussing these environmental bottlenecks with some other developers, we noticed that the mobile OS appears to throttle the WebRTC signaling thread when the CPU load hits a certain threshold, leading to intermittent “invalid token” or “could not establish signal connection” errors during the initial handshake.
Has anyone else noticed that the LiveKit client becomes “sluggish” or starts dropping media tracks on mobile if there are other high-performance tasks running in the background? I’m also seeing occasional 408 Request Timeouts during the ICE candidate exchange, which makes me think the mobile network stack is getting deprioritized alongside the main rendering thread.
I’m trying to figure out if there’s a way to make the signaling connection more resilient—perhaps by increasing the join timeouts or adjusting the QoS settings for the WebSocket—to ensure tracks hydrate correctly in “noisy” mobile environments. If you’ve dealt with stabilizing the WebRTC experience for users who might be multitasking heavily—or have tips on ensuring consistent track subscriptions during heavy background processing—I’d really value your advice!
Best regards!