참고 : 클라이언트가 브라우저를 의미한다고 가정합니다. 그렇지 않으면 자세한 내용을 명확히하십시오.
Socket.io는 이진 데이터를 지원하지 않습니다. 주로 전송 속도가 다르기 때문에 Socket.io는 지원하지 않습니다.
그러나 네이티브 웹 소켓은 Blob 및 ArrayBuffers를 지원합니다.
효율성을 위해 이진 데이터로 가고 싶다면 (내가 동의하는 것은 당신의 경우에 들어가는 방법이다), 나는 socket.io 대신에 웹 소켓을 사용하는 것을 고려해야한다고 생각한다.
나쁜 :
- 만 ~ 사용자의 55 %가 WebSocket을 지원하는 브라우저로 웹을 검색합니다.
- channels, emit 및 on 메소드와 같은 상품 socket.io는 제공하지 않습니다.
좋은 :
웹 소켓 API는 매우 간단합니다.
훨씬 더 효율적인 메모리가 될 것입니다. 일반적으로 일반 배열은 먼저 JSON 문자열을 만든 다음 다시 전송하여 전송됩니다. 즉, 실제로 배열의 문자열 표현을 보내는 것입니다! 대신, 예상 할 수있는 바이트의 양을 보낼 수 있습니다 (전송하기 전에 문자열 길이를 확인하지 않고보다 예측 가능한 방식으로,보다 원할 경우 "프로토콜"방식으로). 당신이 WS를 사용하기로 결정한 경우
, 당신은이를 확인할 수 있습니다 : 그렇지 http://www.adobe.com/devnet/html5/articles/real-time-data-exchange-in-html5-with-websockets.html
그냥 JSON으로 갈 수 있습니다.
진실을 말하자면, 여전히 socket.io와 "universal"지원을 위해 JSON을 사용하고, 플래시 전송을 활성화하고, 게임의 대기 시간이 짧으면 느린 전송을 비활성화하십시오.
이것은 네트워크를 통해 데이터를 보내는 데 사용하는 직렬화 라이브러리/RPC 프로토콜에 따라 달라집니다. – millimoose