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 |