소켓(Socket)
프로세스가 네트워크로 데이터 내보내거나 받기위한 실제적인 창구역할을 하는것
서버와 클라이언트를 연결해주는 도구, 인터페이스 역할
- 프로토콜
- IP주소
- 포트 넘버
소켓 흐름
서버
클라이언 소켓의 연결요청을 대기하고, 연결요청이 오면 클라이언트 소켓을 생성해 통신을 가능하게 함
- socket() Socket 생성
- bind() ip와 port 번호 설정
- listen() 클라이언트 요청connect()에 수신 대기열 생성
- accept()
- 클라이언트 연결read()을 기다림
클라이언트
실제로 데이터 송수신이 일어나는 곳
- socket() Socket 여는 함수
- connect()
- 통신할 서버의 설정된 ip와 port 번호에 통신을 시도하는 함수
- 통신 시도 시, 서버가 accept() 통해 클라이언트의 socket descriptor 반환
- 이를 통해 클라이언트와 서버가 서로 read() write() 만 반복하며 통신
Socket.io
소켓도 여러가지 개념이 있음. nodejs에서 서버를 쓸 때 express쓸지 http를 쓸지 정하는것처럼.
⇒ 많은 작업을 한다면 다른 라이브러리를 사용해야함.
WebSocket
양방향 소통을 위한 프로토콜(약속)
- HTML5 웹 표준 기술
- 빠른 작동, 통신시 적은 데이터 이용
- 프로토콜에 맞춰 단순히 이벤트 듣고 보내는 것만 가능
웹소켓 → 매번 콘솔로그 찍힘
Socket.io
실시간 양방향 통신을 위한
웹소켓 기반 JS라이브러리
- 표준기술 X
- 통신 서버 소켓 - 클라 소켓 연결
- 이벤트 기반
- 방 개념
- 방 : 연결시 클라이언트 다 기록
- 일부 클라에게만 데이터 전송하는 브로드캐스팅 가능
socket.id 소켓 객체의 id값
'새싹🌱' 카테고리의 다른 글
[JAVA] RequestMapping Handler Method (0) | 2022.11.16 |
---|---|
221109 JAVA 입문 (0) | 2022.11.09 |
0905 CSS 반응형 (0) | 2022.09.05 |
[TIL] 220724 (0) | 2022.07.24 |
0718 10회차 (0) | 2022.07.18 |