How to integrate MediaSoup with React Native

Hi MediaSoup community,

I have been trying to integrate MediaSoup with React Native but I’m stuck and need specific, practical guidance.

My use case:

  1. Building voice rooms (Clubhouse-style, with 5–20 speakers and listeners).
  2. Building virtual events (host + multiple speakers + large audience, audio-only or with optional video for speakers).

What I’ve tried:

  1. Using react-native-webrtc for media capture and consumption.
  2. Tried registerGlobals() and polyfills for mediasoup-client on React Native.
  3. Attempted to handle signaling via Socket.IO with my Node.js + MediaSoup server.

The challenges:

  1. I could not get mediasoup-client to work reliably on React Native despite polyfills.
  2. Unclear exact steps to handle SDP, ICE, and DTLS transport with React Native while using MediaSoup as the SFU.
  3. Unclear how to properly consume and produce tracks on React Native clients with MediaSoup’s expectations.

What I am looking for:

Clear, practical guidance (or a minimal working example) on:

  • How to integrate React Native + react-native-webrtc with a MediaSoup server for both publishing and consuming.
  • Whether I need to skip mediasoup-client entirely and use my own signaling/SDP exchange.
  • How to map MediaStreamTracks with MediaSoup transports in React Native.
  • Best practices from anyone who has successfully used MediaSoup with React Native for production voice rooms or virtual event features.

I really appreciate any step-by-step pointers, sample repos, or architecture insights from those who have done this, so I can avoid building a custom SFU and launch my product faster.

Thank you in advance!

You integrate mediasoup-client into your React-Native JS app and read the documentation: mediasoup :: v3. That’s basically all.

It’s unbelievable that you got it work at all if your next questions are about how to handle SDP, ICE and DTLS. That means that you haven’t read the mediasoup-client documentation.

By using the mediasoup-client API as documented.