간단한 파이썬 웹 소켓 서버를 구축하려고합니다. 나는 그 핸드 쉐이크와 모든 것을 할 수 있었다. 그러나 브라우저에서받은 메시지를 디코딩하는 방법을 알 수는 없지만 서버가 수신하는 원시 출력은 'xÙõKþ°pãüCY
입니다. 어떻게 해독해야합니까?websocket을 통해 전송 된 데이터 디코드
답변
WebSocket 프로토콜에는 framing protocol이 포함됩니다. 브라우저는 원시 응용 프로그램 바이트를 서버로 보내지 않고 그 반대의 경우도 마찬가지입니다. 원시 바이트를 추출하려면 프레이밍 프로토콜을 구문 분석해야합니다.
이 구문 분석을 위해 많은 라이브러리가 구현되었습니다. 아마도 그 중 하나를 사용해보십시오. 그러한 라이브러리 중 하나는 http://pypi.python.org/pypi/txWS/0.6.1이지만 적합하지 않다면 조금 검색 한 다른 라이브러리를 찾을 수 있습니다.
클라이언트에서 보내는 메시지는 무엇입니까? 그리고 Chrome 8을 사용하고 계십니까? (이전 버전은 7 버전입니다.) 실제로 최근 Chrome을 사용하는 경우 문제는 페이로드를 마스크 해제하지 못한 것일 수 있습니다. 최신 버전의 프로토콜 (HyBi 시리즈)의 모든 클라이언트 - 서버 데이터는 4 바이트의 XOR 마스크를 사용하여 손상된 중개자가 악의적 인 자바 스크립트에 의해 도용되는 것을 방지합니다.
클라이언트 - 서버 페이로드 마스킹에 대한 설명은 section 5.3 of the spec을 참조하십시오.
페이로드 데이터는 UTF-8로 인코딩되어 있으므로 (이전 프로토콜에서도 마찬가지 임) ASCII 문자열로 처리 할 수는 없습니다.
메시지는 간단한 "Hello World!"입니다. 나는 웹 소켓 버전이 8이라는 것을 의미했다. (브라우저가 핸드 셰이크 중에 이것을 보낸다.> Sec-WebSocket-Version : 8). 페이로드의 언 마스킹은 모든 버전에서 동일한 방식으로 작동합니까? –
그렇다면 페이로드를 마스크 해제해야합니다. 페이로드의 처음 4 바이트는 마스크입니다. 이것들은 다음의 페이로드 스트림과 XOR 될 필요가있다. 마스킹 형식은 도입 된 이후로 변경되지 않았습니다. – kanaka
- 1. wifi를 통해 html5/websocket을 통해 파일을 전송
- 2. WebSocket을 전송
- 3. websocket을 통해 이미지 받기
- 4. RS-232를 통해 데이터 전송
- 5. 방법 WebSocket을 통해 구조를 보내
- 6. iPhone에서 디코드 된 원시 오디오 데이터 재생
- 7. node.js 버퍼 데이터 디코드
- 8. Bluetooth를 통해 iPhone에서 Mac으로 데이터 전송
- 9. UILabel로 전송 된 데이터 삭제
- 10. 네트워크를 통해 전송 된 열 수가 중요합니까?
- 11. 디코드
- 12. iPhone에서 네트워크를 통해 보안 데이터 전송
- 13. android에서 POST를 통해 이진 데이터 전송
- 14. WCF로 전선을 통해 최소량의 데이터 전송
- 15. bottle.py : 자바 스크립트를 통해 데이터 전송
- 16. websocket을 통해 브라우저로 비디오 파일 보내기
- 17. Arraybuffer를 Websocket을 통해 바이너리로 보내는 방법은 무엇입니까?
- 18. WebSocket을 - 난 그냥이 (구) 메일을 통해 발견
- 19. 오라클에 디코드 기능이있는 데이터 표시
- 20. FireBug 데이터 전송 크기
- 21. jquery 게시물을 통해 전송 된 객체 바인딩하기
- 22. 보증서가 포함 된 SMTP를 통해 메시지 전송
- 23. 이메일을 통해 전송 된 명령을 구문 분석
- 24. SSL은 SSL을 통해 전송 된 문서를 보호합니까?
- 25. 스크립트를 통해 전송 된 이메일이 전달되지 않았습니다.
- 26. 네트워크를 통해 전송 된 해시 맵의 무결성
- 27. https를 통해 전송 된 데이터를 추적하는 도구
- 28. netowrk를 통해 전송 된 개체의 크기 결정
- 29. YAML 직렬화 된 객체 디코드
- 30. 전송 데이터
직접 websocket 프로토콜을 구현 했습니까? 아니면 기존의 많은 라이브러리 중 하나를 사용 했습니까? 브라우저와 서버간에 실제로 사용되는 websocket 프로토콜의 여러 버전은 무엇입니까? 최소한의 예를 포함 할 수 있습니까? –
크롬으로 테스트 중이며 버전 8 인 것으로 보입니다. '기본'소켓 라이브러리 인 websocket 라이브러리를 사용하지 않고 있습니다. –
이 답변을 살펴보고 완벽하게 작동합니다. http://stackoverflow.com/a/9778823/1193863 – naren