밍비
프로그램의 편린
밍비
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • Spring (2)
    • TIL (23)
    • 프로그래머스 (12)
    • Udemy (16)
    • Typescript (2)
    • MERN (1)
    • AWS (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • state 관리
  • useNavigate
  • Availability Zones
  • 수평 스케일링
  • Page Moving
  • Edge Locations
  • 분산저장소
  • 한입크기로잘라먹는리액트
  • state 끌어올리기
  • useParams
  • 리액트 생애주기
  • AWS Regions
  • react
  • 데이터 수정
  • overflow-wrap
  • Points of Presence
  • API 호출
  • DOM
  • useRef
  • 리액트 프로젝트 만들기
  • 함수형 update
  • 네이버커넥트
  • 리액트
  • useState
  • 리액트 reducer
  • 한입 크기로 잘라먹는 리액트
  • 서비스아키텍처
  • State 합치기
  • 리스트 조회
  • 컴포넌트트리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
밍비
TIL

[WebSocket]Express 서버에 WS 합치기, 프론트와 데이터 공유하기

TIL

[WebSocket]Express 서버에 WS 합치기, 프론트와 데이터 공유하기

2022. 10. 9. 01:14
728x90

WS는 WebSocket을 사용하기 위한 npm 패키지로, 노드에서 핵심적이다!!

그런데 WebSocket은 http와 다른 프로토콜이므로, 

1. npm i ws

2. express를 이용해 http 서버를 만든 후 해당 서버를 WebSocket 서버에 넣어주면 끝~~

const server = http.createServer(app);
const wss = new WebSocket.Server({ server });
server.listen(app.get('port'), () => {
  console.log(app.get('port'), '번 포트에서 대기 중');
});

 

 

ws가 http와 다른 점이 있다면 아무래도 서버로부터 정보를 얻기 위해 매번 request를 넣을 필요가 없다는 것이다.

그러므로 문법도 http와 약간 다르다.

app.get('/*', (req, res) => res.redirect('/'));

이게 http에서 요청하고 응답받는 방식이라면, WebSocket은 이벤트를 처리하는 함수와 비슷한 문법을 사용한다.

 

wss.on('connection', (socket) => {
  socket.send('hello!!!!');
});

이렇게!

이렇게 보내면 프론트단에서 받아야겠지?

const socket = new WebSocket(`ws://${window.location.host}`);
socket.addEventListener('message', (message) => {
  console.log('Just got this: ', message, 'from the server');
});

프론트에서는 이런 식으로 소켓을 정의해서 받으면 된다.

728x90

'TIL' 카테고리의 다른 글

[HTML/CSS] 100일 코딩 챌린지 - 실습(9, 10일차)  (0) 2023.04.07
[HTML/CSS] 100일 코딩 챌린지 - html 레이아웃 만들기(8일차)  (0) 2023.04.06
[WebSocket] Http vs WebSocket  (0) 2022.10.07
[Swift][iOS][SwiftUI] #0801 json mock 데이터 파싱해서 화면에 뿌리기  (0) 2022.08.01
[코틀린][안드로이드] #0721 계산기 앱 만들기 - 3  (0) 2022.07.21
    밍비
    밍비

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.