1. 개요
Websocket웹소켓은 TCP통신 방식으로 서버와 클라이언트 사이에 데이터를 주고 받을 수 있는 기술이다. RFC 6455에 기재되어 있다.
2. 장점
웹소켓은 서버와 클라이언트 사이에서 데이터를 주고 받을 수 있는데 이는 다시말해 서로 메신저를 이용해 1:1 채팅을 한다고 볼수 있다. HTTP REST 메서드인 POST 보다 빠르다. 이런 장점 때문에 여러 API 또는 여러 게임 멀티플레이에도 사용된다.3. 단점
일부 웹 브라우저가 지원하지 않는다. 프레임워크는 많으나 프로그래머가 아니면 접근하기 힘들다.4. WS? WSS?
웹소켓 URI에는 2가지의 종류가 있는데 ws://로 시작하는 경우와 wss://로 시작하는 경우다. ws은 WebSocket의 약자이고, wss는 WebSocket Secure의 약자이며 그냥 HTTP, HTTPS와 같은 개념인 것이다.그래서 보안을 신경쓰는 HTTPS를 사용하는 웹 사이트의 경우에는 ws대신 wss를 써야 한다. 웹 소켓 클라이언트를 연결할 때 wss가 아니면 연결 시도 조차 되지 않기 때문이다. 그래서 일반적으로 운영되는 서비스의 API는 wss를 많이 사용한다.
5. 대표적인 프레임워크 또는 라이브러리
- Python - websockets
- Javascript - 자체 API 또는 ws, websocket[1], socket.io[2]
- Swift - Starscream
- Go - gorilla/websocket [3]