WebRTC 是用于实时浏览器到浏览器媒体通信的技术,但在我这个案例中,它将被用于浏览器到服务器的音频通信。
根据我收集到的信息,MediaStream 是使用 RTP over UDP 进行传输的。
这将需要至少两个额外的端口,除了用于信令的协议之外,这是我想避免的。
在 WebRTC 中,是否有可能使用 RTP over Websocket 而不是 RTP over UDP,以便我只需要使用 80 或 443 端口?
抱歉,使用WebRTC不可能实现此目的。
WebRTC旨在为浏览器提供三个主要功能:
这些功能可通过JavaScript API在Web应用程序中访问,定义在这里。 要访问媒体设备,可以使用getUserMedia(),然后获取一个MediaStream以附加到HTML5音频和视频标记上。 要创建SRTP会话,需要创建对等连接并管理要使用的流。
你必须向浏览器请求媒体SDP报告并使用任何协议(例如WebSockets)将其发送给另一方。当另一方接收到你的SDP报告时,它可以将其注入浏览器中,请求SDP答案并将其发送回来。一旦两个浏览器都有报告,它们就开始使用ICE启动SRTP协商。
因此,你将无法访问RTP包以通过WebSockets发送它们。