1. 실시간 서비스

: HTTP를 이용해서 구현하면 요청-응답이라는 한계때문에 실시간으로 반영하지 못함.

실시간 서비스 구현하기

HTTP 통신

: 요청과 응답 기반

: 다시 요청할 때 까지 변경사항 반영 안됨

: HTTP가 아는 다른 프로토콜을 사용해야 한다 -> TCP

TCP 통신

: 네트워크 레이어 : Tranport Layer

: 스트림을 이용한 실시간 통신

: 소켓을 이용한 네트워크 프로그래밍

소켓

통신 접점

소켓 프로그래밍

: 데이터 그램 소켓 : UDP

: 스트림 소켓 : TCP

TCP 

: 연결필요

: 신뢰성, 손실데이터 재전송

: 혼잡도 제어

: UDP에 비해 느림

: 신뢰성 있는 실시간 통신

: FTP, HTTP, SMTP

: UDP

: 연결 불필요

: 신뢰성 없음

: 데이터 흐름 없음

: 빠름

: 속도 중시형 실시간 통신, 스트리밍 비디오/오디오

: DNS, DHCP, SNMP

TCP

: 연결 지향이므로 연결 과정 필요

: 연결과정

1 : 서버 소켓 생성, 준비, 대기

2 : 클라이언트 소켓 연결, 소켓간 연결

3 : 데이터 교환

4 : 접속 끊기

TCP데이터 주고 받기

: 스트림 기반

: 보내기 : 스트림에 write

: 받기 : 스트림에서 read

UDP(User Datagram Protocol)

2. TCP 실시간 통신 서비스

net 모듈

: 소켓 통신을 위한 기본 모듈 : net

> var net = require('net')

: 클래스

: net.Server, net.Socket

TCP 서버

: 서버 생성

> net.createServer(옵션, 리스너)

: 서버 함수

: listen(port, [호스트],콜백...) : 클라이언트 접속 대기

: close(콜백) : 추가 접속을 받기 않는다.

: getConnections(콜백) : 연결 갯수

: address() : 서버 주소

: 서버 이벤트

: listening : 포트 바인딩, 접속 가능한 상태 이벤트

: connection : 클라이언트 접속 이벤트

: close : 서버 닫기(연결된 소켓이 없을때만 발생)

: error : 에러

3.UDP 실시간 서비스

: TCP와 비슷한 방법이지만, 커넥트 부분이 빠져있다.

: 스트링 방식이 아니라, 패킷 방식이다.

: 서버, 클라이언트 소켓 구분이 없다.




'프로그래밍 > Nodejs' 카테고리의 다른 글

인증  (0) 2017.04.27
socket.io 를 이용한 실시간 웹서비스  (0) 2017.04.27
Nodejs와 MongoDB  (0) 2017.04.27
Node.js와 MySQL  (0) 2017.04.27
Express  (0) 2017.04.24

+ Recent posts