2013-06-01 160 views
4

我正在嘗試使用Websocket編寫接收mjpeg的javacript。 客戶端可以選擇要播放的視頻文件。 {「圖像」 ::「base64_image」}在JavaScript的Websocket上清除緩衝區

當客戶端試圖選擇不同的視頻,會出現問題

服務器通過一個使用JSON如下發送MJPEG作爲圖像之一。 需要2分鐘以上才能切換到新的視頻文件。 (服務器和客戶端是在不同的國家,但。)

我知道有延遲,但事情是

時間越長我打開一個視頻文件時,速度較慢的下一個視頻文件了所示。

我想有排隊的數據緩衝區中。所以,我的問題是

如何清除JavaScript中的套接字緩衝區?

或者如果它不是關於緩衝區,有什麼想法是什麼問題?

回答

0

沒有任何的示例代碼最有可能的問題是,你的WebSocket客戶端獲取由消防軟管來自服務器被淹。

最有可能的,你可以通過具有用於下一幀的WebSocket客戶端輪詢時,它已準備好處理它這個調整。這樣做的好處是,你可以再停止輪詢資產X框架中,並從資產Y.

那當然假設問題的框架開始輪詢是客戶端...如果它是你的服務器上它加載了整個視頻等,不能「放手」的視頻切換到另一個那麼這是在服務器上的另一個問題。

那說,這不是一個很好的用例的WebSockets ......他們都是偉大的小數據包...這只是一個實驗?

+1

這會來回發送更慢,雙倍的延遲。現在,我正嘗試使用服務器的opencv進行圖像處理,並將處理後的圖像發送給客戶端。除了websocket之外,你有什麼建議來匹配這項工作嗎? –

+0

@ A-letubby - 我目前運行使用了WS這個「投票」機制的WebSocket(WS)應用程序,我想如果你做了一個簡單的測試,你會發現,從使用「確認」或「民意調查」的消息了由於連接已經打開,客戶端在ws上非常快速。如果您是通過標準HTTP進行輪詢,那麼是的,因爲您正在打開和關閉很多連接,所以速度會很慢。 一般來說,ws不適合發送大圖像/數據包,最好重新設想一下,然後沿ws發送文件的URL並讓瀏覽器通過正常通道加載圖像。 (XHR) –

+0

@NickSharp嗨,我正在做一些類似於OpenCV和Web-Sockets。你有沒有得到關於如何清除或設置緩衝區空間的決議? –