API Gateway의 WebSocket API 개요
API Gateway에서 AWS 서비스(예: Lambda 또는 DynamoDB) 또는 HTTP 엔드포인트에 대한 상태 저장 프론트엔드로 WebSocket API를 만들 수 있습니다. WebSocket API는 클라이언트 애플리케이션에서 수신한 메시지의 내용을 기반으로 백엔드를 호출합니다.
요청을 받고 응답하는 REST API와 달리 WebSocket API는 클라이언트 앱과 백엔드 간의 양방향 통신을 지원합니다. 백엔드는 연결된 클라이언트로 콜백 메시지를 보낼 수 있습니다.
WebSocket API에서 수신되는 JSON 메시지는 사용자가 구성한 라우팅을 기반으로 백엔드 통합으로 전달됩니다. (비 JSON 메시지는 사용자가 구성한 $default
라우팅으로 전달됩니다.)
라우팅에는 라우팅 선택 표현식을 평가할 경우 예상되는 값인 라우팅 키가 포함되어 있습니다. routeSelectionExpression
은 API 수준에서 정의되는 속성입니다. 메시지 페이로드에 존재할 것으로 예상되는 JSON 속성을 지정합니다. 라우팅 선택 표현식에 대한 자세한 내용은 라우팅 선택 표현식 단원을 참조하십시오.
예를 들어 JSON 메시지에 action
속성이 있고 이 속성을 기반으로 다른 작업을 수행하려는 경우 라우팅 선택 표현식은 ${request.body.action}
일 수 있습니다. 라우팅 테이블은 사용자가 테이블에 정의한 사용자 지정 라우팅 키 값에 따라 action
속성 값을 일치시켜 어떤 작업을 수행할 것인지 지정할 것입니다.
WebSocket API에 대한 라우팅 사용
$connect
, $disconnect
, $default
등 세 가지 사전 정의된 라우팅을 사용할 수 있습니다. 또한 사용자 지정 라우팅을 생성할 수 있습니다.
-
API Gateway는 클라이언트와 WebSocket API 간 지속적인 연결이 시작될 때
$connect
라우팅을 호출합니다. -
API Gateway는 클라이언트 또는 서버가 API와의 연결을 끊을 때
$disconnect
라우팅을 호출합니다. -
일치하는 라우팅이 발견되면 메시지를 기준으로 라우팅 선택 표현식이 평가된 후 API Gateway가 사용자 지정 라우팅을 호출합니다. 일치 여부에 따라 어떤 통합이 호출될지 결정됩니다.
-
일치하는 라우팅이 없거나 메시지를 기준으로 라우팅 선택 표현식을 평가할 수 없는 경우 API Gateway가
$default
라우팅을 호출합니다.
$connect
및 $disconnect
라우팅에 대한 자세한 내용은 연결된 사용자 및 클라이언트 앱 관리: $connect 및 $disconnect 라우팅를 참조하십시오.
$default
라우팅 및 사용자 지정 라우팅에 대한 자세한 내용은 API Gateway에서 $default 라우팅 및 사용자 지정 라우팅을 사용하여 백엔드 통합을 간접적으로 호출를 참조하십시오.
연결된 클라이언트 앱에 데이터 전송
백엔드 서비스는 연결된 클라이언트 앱에 데이터를 보낼 수 있습니다. 이제 다음을 수행하여 데이터를 보낼 수 있습니다.
-
통합을 사용하여 사용자가 정의한 라우팅 응답으로 클라이언트에 반환되는 응답을 보냅니다.
-
@connections
API를 사용하여 POST 요청을 전송할 수 있습니다. 자세한 내용은 백엔드 서비스에서 @connections 명령 사용 단원을 참조하십시오.