2011-10-08 2 views
1

초안에서 언급 한 것처럼 websocket 프로토콜은 확장되도록 설계되었으며 등록 된 확장을 사용할 수 있습니다. 예를 들어 데이터 전송 중에 압축 작업을 수행 할 수있는 내선 deflate-application-data의 경우 세부 정보는 here입니다. 음, 디자인에 약간의 문제가있을 수 있지만 요점은 아닙니다.압축을 지원하도록 websocket에 확장 헤더를 추가하는 방법

제 질문은 이러한 확장 기능을 어떻게 사용할 수 있습니까? 우리는이 같은 웹 소켓을 만들 :

var socket = new WebSocket('ws://game.example.com:12010/updates'); 

웹 소켓 API를 추가하거나 웹 소켓 프로토콜 헤더를 수정하는 등의 기회를 제공 할 것으로 보인다. 복용량 websocket api 현재 확장 기능을 지원하지?

+0

웹 소켓의 패킷은 작아서 더 큰 데이터 청크를 보내고받는 경우가 아니라면 압축되지 않은 것보다 긴 데이터 길이를 생성합니다 ~ 150 바이트. – Zaffy

답변

1

이것은 JavaScript 코드에서 명시 적으로 지정하는 확장 프로그램이 아닙니다. 브라우저가이 확장을 지원하면 Sec-WebSocket-Extensions 헤더에 deflate-frame 토큰이 자동으로 추가됩니다. 서버가이를 지원하면 응답에 동일한 토큰을 지정합니다. 그러나 어떤 브라우저가 이미이 확장 기능을 지원하는지 여부는 잘 모르겠습니다. 적어도 파이어 폭스에서 시작하는 deflate-stream을 지원하더라도 Firefox는 확실히 지원하지 않습니다.

+0

감사합니다. 지금 확장 기능이 작동하는 방식을 알아 냈습니다. 그리고 파이어 폭스 6을 테스트하여 서버에 수축 스트림 헤더를 보냈다. 그러나 왜 당신은 "확실히 그렇지 않다"고 말했습니까? 그게 파이어 폭스가 그냥 deflate - 스트림 헤더를 보내고 그 페이로드가 전혀 압축되지 않는다는 뜻인가요? 현재 결과를 확인하기 위해 수축을 지원하는 websocekt 서버를 찾을 수 없습니다. 고급 정보 링크를 제공 할 수 있습니까? 다시 한번 감사드립니다 ~ :) – changchang

+0

@changchang :'deflate-stream'과'deflate-frame'은 서로 다른 두 가지입니다. Firefox는 전자는 지원하지만 후자는 지원하지 않습니다. –

관련 문제