"채팅 구현하기" : AWS Iot / WebSocket/ MQTT ??
1. AWS Iot
- AWS IoT는 Amazon Web Services의 인터넷 물건(Things) 서비스로, 사물 인터넷(IoT) 애플리케이션을 빌드하고 관리하기 위한 플랫폼
이 서비스를 사용하면 다양한 사물(디바이스)을 연결하고 데이터를 수집, 저장, 분석하여 실시간으로 관리하고 제어할 수 있음
AWS IoT는 여러 가지 프로그래밍 언어를 지원하는 디바이스 SDK를 제공하고, 이 SDK를 사용하면 디바이스를 AWS IoT 서비스에 쉽게 연결이 가능함
디바이스와 AWS IoT 서비스 간의 통신을 지원하는 디바이스 게이트웨이이고, 이 게이트웨이는 여러 프로토콜을 지원하여 다양한 디바이스와 통신이 가능함
2. WebSocket
- 웹소켓(WebSocket)은 웹 브라우저와 웹 서버 간의 양방향 통신을 지원하는 프로토콜임
HTTP 프로토콜은 클라이언트에서 서버로 요청을 보내고 서버는 요청에 대한 응답을 반환하는 단방향 통신을 지원하지만, 웹소켓은 클라이언트와 서버 간에 지속적으로 연결된 양방향 통신 채널을 제공하여 실시간 데이터 전송이 가능함
웹소켓은 한 번의 연결로 여러 메시지를 주고받을 수 있으므로 연결 관리에 필요한 오버헤드가 줄어듬
3. MQTT
- MQTT(MQ Telemetry Transport)는 경량의 발행/구독(Publish/Subscribe) 메시징 프로토콜
MQTT는 IoT(IoT) 및 M2M(Machine-to-Machine) 통신을 위한 것으로, 네트워크 대역폭이 제한된 환경에서도 효율적으로 동작할 수 있음
4. AWS Iot로 실시간 채팅기능구현 하려면
- MQTT 연결 : AWS IoT에서는 MQTT를 기본 프로토콜로 사용하여 디바이스와 클라우드 간의 통신을 지원함. MQTT는 경량의 퍼블리시/서브스크라이브 메시징 프로토콜로, 디바이스의 센서 데이터를 퍼블리시하고 클라우드에서 해당 데이터를 수신하여 처리할 수 있고, MQTT를 통한 연결은 일반적으로 저전력 디바이스나 제한된 네트워크 환경에서 사용됨
- 서버에서 AWS IoT 데이터를 구독: AWS IoT에서는 MQTT를 통해 디바이스 간에 메시지를 주고받을 수 있음, 따라서 서버 측에서 AWS IoT 서비스에 연결하여 특정 토픽(topic)을 서브스크라이브(subscribe)하여 실시간으로 메시지를 수신할 수 있고, 이를 통해 다른 디바이스에서 보낸 메시지를 실시간으로 서버에서 조회할 수 있음
- 웹소켓 연결 : AWS IoT에서는 웹소켓을 통한 연결도 제공함. 웹소켓은 웹 애플리케이션과 AWS IoT 서비스 간의 실시간 양방향 통신을 가능하게 하고, 이는 브라우저 기반의 웹 애플리케이션에서도 AWS IoT와 통신할 수 있도록 해줌. 웹소켓 연결은 HTTP나 HTTPS 프로토콜을 사용하는 웹 애플리케이션과의 통합에 유용함.
- AWS IoT Core와 통합: AWS IoT Core는 MQTT 프로토콜을 지원하므로, 클라이언트 측에서 AWS IoT와 연결하여 MQTT를 통해 데이터를 주고받을 수 있습니다. 이를 통해 프론트엔드에서 AWS IoT를 통한 실시간 통신을 구현할 수 있습니다.
5. 사용코드