一、多端口问题
mediasoup 一个transport 会开启一个udp端口进行监听,这样服务端就需要同时对外暴露出多个端口,在实际线上应用时
非常不安全。
二、多端口问题的解决方案
1、mediasoup前面加一个代理对外端口,客户端所有请求发送到这个代理端口上,然后代理端口再转发到内部的mediasoup服 务。
2、对于标准webrtc协议,通过SDP里面包含的ICE Info, 其中ice-ufrag可以作为唯一值对应一个connection,或者也可以通过ssrc做为客户端唯一标识,当服务端接收到客户端数据包时,基于这些参数做区分。
有些厂家是基于webrtc做私有化协议改造,这时可以自己修改底层网络部分,使服务端只监听一个端口。
3、修改mediasoup源码
端口监听的地方在UdpSocket中,不过修改源码需要对mediasoup有深入了解,难度也不小。
目前建议方案就是基于ssrc 关联不同的producer、consumer。
对外暴露一个端口,当收到rtp包时,基于rtp包中的ssrc找到对应的发布者,然后再找到该发布者的消费者consumer。