通过Websocket传输RTP

3

我可以使用Websocket发送RTP吗?

我认为Websocket只是一种建立与另一个点的永久TCP连接并避免消息开销的方法。因此,似乎我可以使用任何可以在TCP上使用的东西。这听起来正确吗?

1个回答

4
是和不是。
你可以通过websocket连接发送任何数据,但它并不像TCP连接那样,因为另一端点(即服务器)需要有逻辑来处理初始请求并使用标头建立通道。 Websockets使用TCP,但它们并不像TCP。
关于RTP数据包的部分,鉴于您添加了webrtc标签,WebRTC可用于创建和发送RTP数据包,但是RTP数据包和连接是由浏览器自身进行的。 您无法使用WebRTC选择RTP数据包并将其发送到您选择的协议(例如WebSockets)。 您可以参考此关于此的其他答案
更新
如果您在Javascript代码中有RTP数据包,您可以通过WebSocket发送它(例如使用Base64编码)。 但是,如果您使用WebRTC,则真正的问题是您将没有RTP数据包或数据来构建它们,因为所有内容都在浏览器代码中而且不可通过JavaScript访问。

谢谢,我明白它并不完全与TCP相同。我也意识到可以使用WebRTC发送数据。但问题更多的是,我是否真的必须使用WebRTC进行媒体传输,或者我可以像SIP信令一样通过WebSocket发送数据(RTP)? - Misha Slyusarev
正如我所说,您可以通过WebSockets发送任何内容。如果您的Javascript代码中有一个RTP数据包,您可以通过WebSocket发送它(例如Base64编码)。但真正的问题是,如果您使用WebRTC,您将没有RTP数据包或构建它们的数据,因为一切都在浏览器代码内部,无法通过JavaScript访问。 - nakib
是的,我知道我无法从WebRTC实现中获取数据以在我的JS中使用,这也被理解了。不过你还是回答了我的问题。我会更新你的消息,把回答我的问题的那句话放在那里。 - Misha Slyusarev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接