230711 day67 개념 정리

Jin·2023년 9월 2일
0

codenotion

목록 보기
61/90
post-thumbnail

웹 소켓으로 채팅 프로그램 만들기 

소켓 : 서버와 클라이언트가 양방향 통신을 할 수 있게 해주는 소프트웨어 
-> ip 주소와 포트번호로 이루어짐 

자바에서는 소켓 클래스를 만들어서 지원함 
1. 서버에서 서버용 소켓(ServerSocket)을 생성
(클라이언트의 접속을 기다림) 
2. 클라이언트가 소켓을 생성하여 서버로 연결을 요청 
3. 서버가 접속을 허가함 
4. 서버와 클라이언트가 각각 통신을 위한 I/O 스트림 생성
5. 스트림을 통해 서버와 클라이언트가 통신함 
6. 클라이언트가 모든 작업을 마친 후 소켓 종료 
7. 서버는 새로운 클라이언트의 접속을 위해 대기하거나 종료할 수 있음 


웹소켓 : 클라이언트 요청에 응답한 후에도 
연결을 그대로 유지하는 연결 지향 방식 
-> 별도의 요청이 없어도 서버가 원할 때 
클라이언트로 데이터를 전송 가능 

웹소켓에선 어노테이션을 이용하여 웹소켓 서버 구현 가능 
-> 응답은 이벤트 객체를 통해서 전달되고 
javascript에서 리스너 메소드를 통해서 전달받을 수 있음 


어노테이션 종류 
1. @ServerEndpoint : 웹소켓 서버의 요청명을 설정 
2. @OnOpen : 클라이언트가 접속했을 때 요청되는 메소드를 정의 
3. @OnMessage : 클라이언트로부터 메세지가 전송되었을 때 
실행되는 메소드를 정의 
4. @OnClose : 클라이언트의 접속이 종료되면 실행되는 메소드 
5. @OnError : 에러 발생 시 실행되는 메소드를 정의 


웹소켓 접속 경로 (주소창)

ws://호스트:포트번호/컨텍스트루트(다이나믹웹프로젝트 이름)/@ServerEndpoint

ws://localhost:8010/websocket/ChatingServer


클라이언트 구현 
채팅참여화면 


profile
신입 개발자의 배웠던 것을 복습하기 위한 블로그입니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN