WebSocket 사용

이 주제에서는 Apigee 하이브리드에서 WebSockets를 사용하는 방법을 설명합니다.

소개

게임, 커뮤니케이션, 금융 거래, 기타 높은 처리량 활동 등 웹 상호작용이 실시간으로 발생해야 하는 상황이 많이 존재합니다.

WebSocket은 단일 TCP 연결을 통해 웹 클라이언트와 웹 서버 간의 전 이중 통신 채널을 제공하는 프로토콜입니다. WebSocket 프로토콜은 HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 연결을 구축합니다. 연결이 구축되면 클라이언트와 서버는 WebSocket 프로토콜을 사용하여 데이터를 보내고 받습니다.

WebSockets 사양 및 프로토콜은 W3C에서 유지관리합니다.

Apigee 하이브리드의 WebSocket 지원

Apigee Hybrid에서 가상 호스트는 API 프록시가 노출되는 하나의 도메인 또는 여러 도메인을 정의합니다. 하이브리드 가상 호스트는 기본적으로 HTTP 및 WS 프로토콜을 모두 지원합니다. WebSockets를 사용하기 위해 특수 가상 호스트 또는 특수 구성을 만들 필요가 없습니다. 대신 Upgrade 요청 헤더를 포함하여 HTTP에서 WS로 프로토콜 업그레이드를 요청하는 것은 클라이언트의 몫입니다. API 프록시 엔드포인트에 대한 업그레이드 요청은 101 Switching Protocols 응답을 반환합니다. 추가 요청 및 응답은 개방형 WebSockets 연결을 통해 연결이 종료될 때까지 양방향으로 수행됩니다.

정책 지원

WebSocket 연결을 사용하면 API 프록시에서 Verify API Key 및 OAuthV2 정책만 사용할 수 있습니다. 다른 모든 정책은 무시됩니다.

연결 취소

다음 상황에서는 WebSockets 연결이 닫힙니다.

  • 프록시 엔드포인트가 API 키 또는 OAuth 토큰이 없는 요청을 수신
  • 프록시 엔드포인트가 만료되었거나 잘못된 API 키 또는 OAuth 토큰이 있는 요청을 수신
  • WebSockets 연결이 타임아웃됨

추적 및 분석 사용

Trace 도구에서 각 WebSocket 연결에 대해 다음 스크린샷과 같이 101 상태의 요청 하나가 표시됩니다.

하이브리드 분석 대시보드에는 각 WebSockets 세션에 대해 계산된 트래픽이 표시됩니다. 세션 중에 발생한 왕래 트래픽은 대시보드에 표시되지 않습니다.

샘플 WebSockets 애플리케이션

자세히 알아보려면 GitHub에서 작동하는 websocket-sample 애플리케이션을 참조하세요. 이 샘플은 WebSocket 연결을 통해 API 프록시를 호출하는 방법을 보여줍니다. 프록시는 Kubernetes 클러스터에 배포된 간단한 백엔드 대상 애플리케이션을 호출합니다.