AWS Lambda + AWS API Gateway + websocket으로 간편한 양방향 통신 채팅 앱을 서버리스로 쉽게 구축해 보았습니다.
이 기사에 대하여
Amazon API Gateway에서 Websocket 사용 가능 되었습니다.
이것에 의해, Websocket를 사용한 양방향 통신을 서버리스로 실현할 수 있습니다!
Websocket으로 연결되어 있는 사용자라면, 백엔드측으로부터의 push 통지도 가능하게 됩니다!
조속히 시도했기 때문에 기사로 해 보겠습니다.
덧붙여서 동작하고 있는 곳은 이런 느낌입니다.
websocket chat app on AWS Lambda(serverless) 피 c. 라고 r. 코 m/아 GZ1 아2지 P5 — tez (@te22eret) 2018년 12월 19일
백엔드측에서 특정 유저에게만 메시지를 보내고 있는 곳은 이런 느낌입니다.
콘솔 1에서는 메시지를 받고 있지만 콘솔 2에서는 받지 못했음을 알 수 있습니다.
환경 구축
기본적으로 이 페이지에 따라 환경 구축을 해 나갑니다.
simple-websockets-chat-app 의AWS Serverless Application Repository
에서Deploy
Amazon API Gateway
에서Choose the protocol
에서WebSocket
를 선택하여 API 만들기Amazon API Gateway
,Routes
,$connect
,$disconnect
,sendmessage
$default
를 사용하여 테스트
참고로 wscat
의 sendmessage
의 Amazon API Gateway
설정은 다음과 같습니다.
이것만으로 Websocket을 이용한 간단한 채팅 앱을 서버리스로 사용할 수 있습니다!
이 샘플이면 백엔드 측에서 특정 사용자에게만 메시지를 보내는 Lambda가 포함되어 있지 않지만, Routes
수 있습니다. sendmessage
에 postParams.ConnectionId
의 DynamoDB
테이블이 만들어졌으며 거기에 simplechat_connections
가 입력되어 있기 때문에 그것을 사용하면 특정 사용자에게만 채팅을 보낼 수 있습니다!
요약
이번에 사용한 샘플에서는 랜덤하게 connectionID
가 작성되고 있습니다만, 유저마다 고유의 값을 입력하거나 유저와 connectionID
를 연계해 두면, 보다 간단하게 유저 마다 DM을 보낼 수 있을 것 같네요. connectionID
와 Lambda
를 평소처럼 쓰고, 조금 설정을 바꾸는 것만으로 간단하게 Websocket를 이용한 양방향 통신을 서버리스로 실현할 수 있는 것은 매우 좋네요!
Reference
이 문제에 관하여(AWS Lambda + AWS API Gateway + websocket으로 간편한 양방향 통신 채팅 앱을 서버리스로 쉽게 구축해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tez/items/7902ec2b127f796f195f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)