발생일: 2013.05.28 문제: WebSocket Protocol 스펙을 보며 정리했던 메모 해결책: WebSocket Protocol Specification http://tools.ietf.org/html/rfc6455 개요 동일 근원 정책 아래에서 제공한다. 80/443 포트를 이용하는 HTTP 아래에서 동작하는 방식으로 설계했지만, 디자인 자체가 여기에 제한되어 있는 것은 아니다. 미래에는 비슷한 핸드쉐이크 방식으로 여러 포트에서 사용할 수도 있을 것이다. 프로토콜 개요 프로토콜은 핸드쉐이크와 데이터 전송으로 나뉜다. 클라이언트의 핸드쉐이크 GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec..
발생일: 2013.05.28 문제: WebSocket API 스펙을 보며 정리했던 메모 해결책: WebSocket API Specification http://www.w3.org/TR/websockets/ bufferedAmount send()로 추가한 데이터 중 아직 전송되지 않고 버퍼된 양 binaryType 개발자가 데이터를 어떤 방식으로 사용할 지 결정할 수 있게 한다. 기본 생성되면 "blob"로 저장되며, "blob" 또는 "arraybuffer" 중 선택할 수 있다. "blob"이면 파일에 저장하는 게 낫고, "arraybuffer"면 메모리에 쓰는 게 낫다. send(data) if data is a string 데이터를 유니코드 텍스트로 변환한다. 에러가 발생하지 않았다면, buffere..
발생일: 2013.05.28 문제: 웹소켓으로 채팅을 구현하는 것과 관련해 정리해뒀던 메모 해결책: 예전에 구글 톡은 어떻게 사용하고 있었나? https://developers.google.com/talk/ XMPP 프로토콜을 사용하고 있었는데, 이번에 행아웃으로 통합하면서 XMPP를 제공하지 않음. 구글톡이나 행아웃은 websocket을 쓰고 있나? https://plus.google.com/104401121686781166984/posts/Wc4vKDmmqEZ 구글 챗에서는 쓰고 있지 않다. 대신, 채널이란 개념을 쓰고 있다. WebSocket http://www.websocket.org/quantum.html 여기에 오버뷰가 잘 정리되어 있다. 이전에는 폴링, 롱폴링, 스트리밍이 있었다. - 폴링:..
발생일: 2011.09.20 문제: 얼마 전 팀 내에서 진행했던 미니 프로젝트가 어느 날 갑자기 크롬에서 돌아가지 않는다. 제티 서버에 올라가 있고, 웹소켓을 이용해 동작하는 서비스인데, 소켓 생성이 제대로 되지 않는 것 같다. 콘솔 로그를 보니 아래와 같은 에러가 발생한다. Unexpected response code: 400 400번이면 Bad Request 인데... 뭐가 문제일까? 크롬 버전을 확인해보니 14.0.835.163 이다. 해결책: 지난 2011년 9월 16일에 크롬 안정화 버전 14.0.835.163 이 배포되었다고 한다. 이번 배포에서는 크롬의 웹소켓 프로토콜 업그레이드가 있었다고 한다. 보안 문제 때문에 진행되었고, 기존의 웹소켓 프로토콜과 하위호환성을 지원하지는 않는다고 한다. ..