2015-06-08 46 views
0

我試圖在使用websockets時減少socket.io帶寬。我切換到二進制數據,但看在瀏覽器開發者控制檯,數據包被髮送爲:如何使用socket.io發送原始數據

[ 'type of the packet (first argument of .emit)', associated data ] 

我只使用一個數據包的類型,所以這會導致不必要的開銷 - 無用字節的發送和整件事是json沒有理由編碼。

如何擺脫數據包類型併發送原始數據?

回答

1

socket.io是在webSocket之上的抽象。爲了支持它提供的功能,它爲消息增加了一些開銷。消息名稱就是這樣一個開銷,因爲它是一個消息系統,而不僅僅是一個數據包傳輸系統。

如果你想擠出傳輸中的所有字節,那麼你可能需要擺脫socket.io,並使用一個簡單的webSocket控制每個數據包的更多內容(雖然你將不得不重新實現一些東西該socket.io爲你做的)。

使用node.js中的socket.io,可以通過發送ArrayBuffer或Buffer來發送二進制文件。在瀏覽器中,您可以通過發送ArrayBuffer或Blob來發送二進制文件。

+1

鏈接已損壞。也許我應該使用'webSocket'。 – newguy

+0

刪除鏈接並將其替換爲內容。 – jfriend00