# Reusable PlainTransport for different producers

**URL:** <https://mediasoup.discourse.group/t/reusable-plaintransport-for-different-producers/4876>\
**Category:** Integration\
**Created:** [January 24, 2023, 5:44pm UTC](https://mediasoup.discourse.group/t/reusable-plaintransport-for-different-producers/4876 "2023-01-24T17:44:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![serio](https://avatars.discourse-cdn.com/v4/letter/s/258eb7/32.png) [@serio](https://mediasoup.discourse.group/u/serio)\
**Post date:** [January 24, 2023, 5:44pm UTC](https://mediasoup.discourse.group/t/reusable-plaintransport-for-different-producers/4876/1 "2023-01-24T17:44:52Z")

</div>

Hi All,

I wonder how I can reuse producer/consumer plainTransport ?

for producer:  
Step 1: transport.createPlainTransport(options)  
Step 2: transport.produce(rtpSendParams)

for consumer:  
Step 1: transport.createPlainTransport(options)  
Step 2: transport.connect(remoteIp, remotePort)  
Step 3: transport.consume(producerId, rtpParams)

In by executing steps first for producer and then for consumer, successfully work. But When I disconnect producer and reconnect it, and only updating step3 for consumer with newProducerId doesnt work.

I thought by only changing producerId for consumer and calling .consume(newProducerId) will succesfully work, but it didnt. Can anybody tell me how I can reuse plainTransport for consumer?

Thanks

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [January 24, 2023, 5:48pm UTC](https://mediasoup.discourse.group/t/reusable-plaintransport-for-different-producers/4876/2 "2023-01-24T17:48:48Z")

</div>

> [@serio](#):
>
> But When I disconnect producer and reconnect it

What do you mean by this? You mean you close the producer and call producer again or you mean that you close producer and transport as well?

---

<div class="post-metadata">

**Author:** ![serio](https://avatars.discourse-cdn.com/v4/letter/s/258eb7/32.png) [@serio](https://mediasoup.discourse.group/u/serio)\
**Post date:** [January 24, 2023, 5:52pm UTC](https://mediasoup.discourse.group/t/reusable-plaintransport-for-different-producers/4876/3 "2023-01-24T17:52:09Z")

</div>

when I say disconnecting producer;  
I mean disconnection of producer (closing producer transport and producer.close())  
So when I reconnect producer, I create new transport for it and then with new producer transport I call transport.produce(rtpSendParams)

---

<div class="post-metadata">

**Author:** ![zaidiqbal](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/zaidiqbal/32/1498_2.png) [@zaidiqbal](https://mediasoup.discourse.group/u/zaidiqbal)\
**Post date:** [January 24, 2023, 6:03pm UTC](https://mediasoup.discourse.group/t/reusable-plaintransport-for-different-producers/4876/4 "2023-01-24T18:03:36Z")

</div>

Got it, it is not going to work like that because you are closing the producer transport.

So if you close only the producer and not transport then you should be able to consume that new producer by calling .consume on consuming end like you are doing now.

But if you need to close the producing transport then I guess you will have to alteast call .connect() with new remote ip and port, and then you can call .consume, if it doesn’t work then I am afraid you will have to create, connect, consume transport again on consuming end.
