자바스크립트 fetch API를 사용한 웹 소켓 채팅방 구현

이번 포스트에서는 자바스크립트 fetch API를 사용하여 웹 소켓 채팅방을 구현하는 방법에 대해 알아보겠습니다.

소개

웹 소켓은 실시간 양방향 통신을 제공하는 프로토콜로, 클라이언트와 서버 간의 효율적인 통신을 가능하게 합니다. 자바스크립트의 fetch API를 사용하면 웹 소켓을 간편하게 구현할 수 있습니다.

구현 과정

아래는 웹 소켓 채팅방을 구현하기 위한 간단한 예시 코드입니다.

const socket = new WebSocket("ws://localhost:8000/chat");

socket.addEventListener("open", () => {
  console.log("소켓 연결됨");
});

socket.addEventListener("message", (event) => {
  const message = JSON.parse(event.data);
  console.log("받은 메시지:", message);
});

socket.addEventListener("close", () => {
  console.log("소켓 연결이 종료됨");
});

function sendMessage(message) {
  socket.send(JSON.stringify(message));
}

위 코드에서는 new WebSocket(url)를 사용하여 웹 소켓 연결을 생성합니다. 웹 소켓 연결이 성공적으로 이루어지면 open 이벤트가 발생하고, 연결이 종료되면 close 이벤트가 발생합니다.

메시지를 받을 때는 message 이벤트를 통해 이벤트 객체의 data 속성으로 전달된 메시지를 확인할 수 있습니다. 예시 코드에서는 JSON 형식으로 메시지를 전송하고 받습니다.

sendMessage 함수는 메시지를 전송하는 함수로, 원하는 형식의 메시지를 JSON 형식으로 변환하여 소켓으로 전송합니다.

서버 측 구현

위 코드만으로는 메시지를 주고받을 수 있는 웹 소켓 클라이언트를 구현할 수 있습니다. 하지만 서버 측에서도 웹 소켓을 사용할 수 있는 환경을 구성해야 합니다. 서버 측에서의 구현은 별도로 다루고자 하며, 예시로 사용된 ws://localhost:8000/chat는 서버의 주소와 포트 번호에 맞게 수정되어야 합니다.

마무리

이번 포스트에서는 자바스크립트 fetch API를 사용하여 웹 소켓 채팅방을 구현하는 방법에 대해 알아보았습니다. 웹 소켓을 사용하면 실시간으로 효율적인 통신을 구현할 수 있으며, fetch API를 통해 쉽게 웹 소켓을 제어할 수 있습니다.

더 많은 내용과 오픈 소스 예제는 자바스크립트 fetch API와 웹 소켓에 대한 공식 문서를 참고해 주세요.