웹소켓과 타입스크립트 예제 코드

2023. 4. 19. 18:24·Programming/JavaScript & TypeScript
728x90
반응형

웹소켓(WebSocket)은 클라이언트와 서버간의 양방향 통신을 가능하게 하는 프로토콜입니다. 이전까지는 HTTP를 사용하여 클라이언트와 서버 간의 단방향 통신만 가능했지만, 웹소켓을 사용하면 클라이언트와 서버가 양방향으로 데이터를 주고받을 수 있습니다.

웹소켓은 HTTP와는 별도의 포트(기본값은 80)를 사용합니다. 클라이언트와 서버가 연결되면, 계속해서 연결을 유지하면서 데이터를 전송할 수 있습니다. 이를 통해, 실시간으로 데이터를 주고받아야 하는 채팅 애플리케이션, 게임, 주식 거래 등에 사용할 수 있습니다.

웹소켓은 HTML5에서 처음 등장했으며, 다음과 같은 특징을 가지고 있습니다.

  1. 양방향 통신: 클라이언트와 서버가 양방향으로 데이터를 주고받을 수 있습니다.
  2. 실시간 통신: 데이터가 실시간으로 전송되므로, 즉각적인 반응을 얻을 수 있습니다.
  3. 작은 오버헤드: 웹소켓은 HTTP 프로토콜을 사용하기 때문에, 추가적인 연결 요청이나 해제 요청이 필요하지 않습니다.
  4. 크로스 도메인 지원: 웹소켓은 CORS(Cross-Origin Resource Sharing)를 사용하여, 동일한 도메인이 아닌 다른 도메인에서도 사용이 가능합니다.

웹소켓은 일반적으로 JavaScript와 함께 사용됩니다. 대부분의 웹 브라우저에서는 이미 웹소켓을 지원하고 있으며, 서버 측에서는 Node.js, Java, Python 등 다양한 언어와 라이브러리를 사용하여 웹소켓 서버를 구현할 수 있습니다.

웹소켓을 사용하면, 더욱 효율적인 실시간 통신을 구현할 수 있습니다.

타입스크립트에서 웹소켓 구현방법

타입스크립트에서 웹소켓 통신 구현 예제는 다음과 같이 작성될 수 있습니다.

// WebSocket 서버 주소
const serverUrl = 'ws://localhost:3000';

// WebSocket 연결 생성
const socket = new WebSocket(serverUrl);

// WebSocket 연결이 열릴 때 실행되는 함수
socket.onopen = (event: Event) => {
  console.log('WebSocket 연결이 열렸습니다.');
};

// WebSocket 서버로부터 메시지를 수신할 때 실행되는 함수
socket.onmessage = (event: MessageEvent) => {
  const message = event.data;
  console.log('WebSocket 서버로부터 메시지를 수신했습니다:', message);
};

// WebSocket 연결이 닫힐 때 실행되는 함수
socket.onclose = (event: CloseEvent) => {
  console.log('WebSocket 연결이 닫혔습니다.');
};

// WebSocket 에러 발생 시 실행되는 함수
socket.onerror = (event: Event) => {
  console.error('WebSocket 에러가 발생했습니다:', event);
};

// WebSocket 서버로 메시지를 전송하는 함수
function sendMessage(message: string) {
  socket.send(message);
}

위 예제에서는 WebSocket 객체를 사용하여 서버와 클라이언트 간의 양방향 통신을 구현합니다. 먼저, new WebSocket() 메소드를 사용하여 서버와의 연결을 생성합니다. 이후, onopen, onmessage, onclose, onerror 이벤트 핸들러를 등록하여 WebSocket 연결의 상태 변화 및 메시지 수신을 처리합니다.

sendMessage() 함수를 사용하여 서버로 메시지를 전송할 수 있습니다. 이 함수는 send() 메소드를 사용하여 메시지를 서버로 전송합니다.

728x90
반응형
저작자표시 (새창열림)

'Programming > JavaScript & TypeScript' 카테고리의 다른 글

화살표 함수(Arrow Function) 사용법 및 주의할 점  (0) 2024.07.11
JavaScript 스프레드 연산자 사용법  (0) 2024.07.10
타입스크립트란?  (1) 2023.04.20
[jQuery] 라디오버튼, 콤보박스에서 자주쓰는 jQuery  (0) 2019.11.22
'Programming/JavaScript & TypeScript' 카테고리의 다른 글
  • 화살표 함수(Arrow Function) 사용법 및 주의할 점
  • JavaScript 스프레드 연산자 사용법
  • 타입스크립트란?
  • [jQuery] 라디오버튼, 콤보박스에서 자주쓰는 jQuery
이프로그
이프로그
리뷰, 개발, 일상을 기록하는 블로그
    반응형
  • 이프로그
    이프로그의 IT이야기
    이프로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (158)
      • Programming (111)
        • C# WPF (11)
        • Java Spring (16)
        • JavaScript & TypeScript (5)
        • Git (9)
        • Database (5)
        • Etc (42)
      • 생활상식 (24)
      • 리뷰 (8)
      • 주식 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      클라우드 네이티브
      javascript
      데이터베이스 성능
      rest api
      주식투자
      XAML
      docker
      투자전략
      Kubernetes
      Java
      java8
      Apache Kafka
      ES6
      소프트웨어 개발
      클라우드 컴퓨팅
      마이크로서비스
      자바스크립트 트릭
      분산 메시징 시스템
      서버 관리
      DevOps
      C# WPF
      WPF
      dynamicresource
      웹 개발
      협업 도구
      데이터 바인딩
      재테크
      투자
      데이터 파이프라인
      이슈 트래킹
    • 최근 댓글

    • 최근 글

    • 250x250
    이프로그
    웹소켓과 타입스크립트 예제 코드
    상단으로

    티스토리툴바