2014-02-20 31 views
3

我正在開發一個應用程序,它將發送OSC控制消息,也就是我理解的數據報數據包,​​從網頁發送到OSC接收器服務器),例如Max/MSP或Node或其他。我是否應該使用WebRTC或Websockets(和Socket.io)進行OSC通信

我通常知道使用UDP,因爲速度在OSC(這也是我將要做的工作)完成的實時/音頻視頻控制工作中很重要,但我知道可以使用其他方法。例如,我正在將OSC從瀏覽器發送到node.js服務器(使用socket.io),然後從node.js服務器發送到Max(這是我最終需要的數據),也使用socket.io。我相信這意味着我正在使用websockets並且延遲/延遲並不糟糕。

我很好奇,現在WebRTC已經出來了,如果我應該把我的工作的未來放在那裏。在我所有使用OSC的工作中,我一直使用UDP,並且只使用Socket.io/Websockets連接,因爲我不瞭解WebRTC。

任何意見我應該做什麼。具體而言,我有興趣

1.我如何能從瀏覽器直接發送OSC消息到OSC服務器(而不是先通過節點服務器)

2.如果我應該留在Node/Socket中。用於發送OSC數據的io/Websocket方法還是應該查看WebRTC?

回答

3

這不是一個關於任何特定技術挑戰的問題,而是一個發現挑戰。而且幾乎是基於意見的。

但我會盡量提供我的想法,因爲其他人也可能有用。

  • 如果OSC服務器支持WebSockets或WebRTC連接,那麼您可以直接使用它們中的一個。
  • 根據瀏覽器的性質,您可能需要支持許多協議,而不是一個特定的協議。許多瀏覽器有不同的支持:http://caniuse.com/rtcpeerconnection除非您的用戶可以被「強制」使用特定的瀏覽器。
  • WebRTC旨在提高性能。我不確定將它與UDP進行比較是件好事,因爲它比UDP要好得多,而且每個瀏覽器的實現也不盡相同(內部)。
  • 您需要與服務器而不是客戶端進行通話,而WebRTC主要針對點對點通信。因此,您需要從服務器端的延遲以及CPU角度來精確調查性能優勢。

UDP的好處在於,某些數據包可以被丟棄/跳過/未傳送,因爲它不是「強制性」數據,如相框或聲音,只會導致質量下降,這是「預期「在流媒體世界中的行爲。 WebSockets將確保數據交付,而「價格」是最終減緩數據包隊列的機制,以確保有序和有保證的數據交付。

相關問題