gpt4 book ai didi

webrtc - Kurento-client.js 可以在应用服务器中使用而不在浏览器中使用 kurento-utils.js 吗?

转载 作者:行者123 更新时间:2023-12-02 01:26:04 33 4
gpt4 key购买 nike

我想将 Kurento 主要用作 WebRTC 到 RTP 网关和一些过滤器。在浏览器中,我使用浏览器的 native WebRTC API。

我想在我的 Node 应用服务器中创建一个 WebRTCEndpoint(Kurento 中使用该术语)并通过 Kurento 管道将其连接到 RTPEndpoint(Kurento 中使用该术语)。我知道这在 Kurento 中是微不足道的,但我的问题是,是否可以通过在应用服务器中仅使用 Kurento-client.js 而在浏览器中不使用 Kurento-utils.js 来做到这一点?我想这样做有很多原因,其中之一是我有自己的信号,还有其他问题我需要直接控制浏览器中的低级 WebRTC API,这是 kurento-utils.js 所做的不允许我这样做。

我还认为,如果 Kurento 确实在强制执行,那么在没有回退的情况下绑定(bind)到 ws 进行信号发送并不是一个理想的设计。

最佳答案

当然! Kurento-utils-js 只是一个 RTCPeerConnection 包装器,用于管理视频标签、缓冲 ICE 候选、在 PlanB 或 UnifiedPlan 的情况下处理 SDP 以及其他一些事情。该库与特殊信号没有任何关系:来自您将信号放入的方法的回调对于 RTCPeerConnectionWebRtcPeer 对象都是相同的。例如,这就是您创建 WebRtcPeer 的方式,以及您将如何发送由它生成的 SDP offer

var options = {
onicecandidate : onIceCandidate,
localVideo : localMedia,
remoteVideo : remoteMedia
}

var webRtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(options, function(error) {
if (error) return console.error(error)
webRtcPeer.generateOffer(function (error, sdpOffer) {
if (error) return console.error(error)
sendMessageToServerApp("sdpOfferMessage", sdpOffer)
})
})

sendMessageToServerApp 是您需要实现的内容。

您还可以访问包装对象。假设您有一个来自库的 webRtcPeer 对象,您可以使用 webRtcPeer.peerConnection 属性获取 RTCPeerConnection

使用 websockets 的目的是支持从媒体服务器到服务器应用程序中定义的代理元素的事件。尽管您可以使用长轮询和其他技巧,但您不太可能将服务器应用程序和 KMS 部署到需要它们的环境中,因为您应该完全控制这部分。建议让媒体服务器的信令端口仅供您的服务器应用程序使用。

为了在客户端和服务器应用程序之间建立回退机制,我建议使用 SockJS。我们过去使用过它,效果很好。

关于webrtc - Kurento-client.js 可以在应用服务器中使用而不在浏览器中使用 kurento-utils.js 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37036329/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com