그외 개발작/기타

"채팅 구현하기" : AWS Iot / WebSocket/ MQTT ??

개발작 2024. 3. 8. 14:17


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를 통한 실시간 통신을 구현할 수 있습니다.