· LANGUAGE/└ Java(34)
-
[ Java / Socket ] 통신 흐름 이해 2024.06.30
-
[ Java / Socket ] JSON을 이용하여 소켓 통신 (비회원 채팅, 익명채팅)
환경 : Spring Tool Suite4 등록 → 재정의(Override) 순서로 socket을 활용하자~!!!!!1 - JsonWebSocketServer.java /** * 클라이언트와 JSON 형태의 데이터를 주고받도록 처리 * - 사용자가 보낸 메세지에 시간과 같은 정보를 추가하여 회신하도록 구현 * */ @Slf4j @Service public class JsonWebSocketServer extends TextWebSocketHandler{ private Set users = new CopyOnWriteArraySet();//동기화 됨(자물쇠 있음) @Override public void afterConnectionEstablished(WebSocketSession session) throw..
2024.06.30 -
Heartbeat, Live Ping
**Heartbeat**와 **Live Ping**은 네트워크나 시스템 모니터링, 혹은 통신 프로토콜에서 시스템의 상태를 확인하고, 지속적으로 연결을 유지하거나 상태를 추적하는 데 사용되는 개념입니다. 두 개념의 주요 차이점과 각각의 사용 예를 설명하겠습니다. ### Heartbeat - **정의**: Heartbeat는 네트워크나 시스템 모니터링에서 주로 사용되는 개념으로, 주기적으로 어떤 대상(서버, 네트워크 장치, 서비스 등)에 신호(메시지 또는 패킷)를 보내 대상이 제대로 동작하고 있는지 확인하는 프로세스입니다. - **사용 사례**: - **서버 모니터링**: 서버의 상태를 주기적으로 확인하여 문제가 있을 경우 경보를 발령합니다. - **분산 시스템**: 시스템의 구성 요소들이 서로 연결되어 있..
2024.06.29 -
[ Java / Socket ] 접속자 제어 및 브로드캐스팅(그룹채팅 구현)
환경 : Spring Tool Suite4 창마다 새로운 사용자로 인식하게끔 설정하여, 그룹채팅의 효과를 이해해보자 브로드캐스팅을 통해 모두에게 메세지가 전송되도록 구현! 소켓 생성 - GroupWebSocketServer.java /** * 접속한 사용자들을 어떻게 관리할 것인가? * - 접속한 모든 사용자에게 메세지를 보내고 싶다면 사용자 정보를 저장 * - 저장소를 Set 형태로 생성 * */ @Slf4j @Service public class GroupWebSocketServer extends TextWebSocketHandler{ //사용자의 정보를 저장할 저장소 생성 //private Set users = new HashSet();//HashSet은 동기화 안 됨(자물쇠 없음) //privat..
2024.06.29 -
[ Java / Socket ] 서버/클라이언트 통신 및 토스트 메세지 띄워보기
환경 : DBeaver, Spring Tool Suite4 챗봇처럼 서버와 클라이언트의 유기적인 통신을 구현하기 위해 테이블을 먼저 생성하고 더미 데이터를 삽입하겠습니다. - DB 생성 -- 테이블 및 시퀀스 생성 -- 챗봇에서 가장 중요한 건 질문에 대한 답변 create table chatbot ( chatbot_no number primary key, -- 번호 chatbot_question varchar2(300) not null, --질문 chatbot_answer varchar2(300) not null --답변 ); create sequence chatbot_seq; -- 더미데이터 생성 insert into chatbot(chatbot_no, chatbot_question, chatbot_..
2024.06.29 -
[ Java / Socket ] 웹 소켓 서버 생성 / 접속 / 접속종료
환경 : Spring Tool Suite4 서버 생성 및 설정 - BasicWebSocketServer.java /** * 웹소켓 접속 및 메시지 전송을 중계하는 서버 * - 상속을 받아서 자격을 획득 (WebSocketHandler / TextWebSocketHandler / BinaryWebSocketHandler) * - @Service 로 등록하여 사용 * - 필요한 메소드를 재정의하여 사용 * - afterConnectionEstablished : 사용자가 접속했을 때 실행되는 메소드 * - afterConnectionsClosed : 사용자가 접속을 종료했을 때 실행되는 메소드 * - handleTestMesage : 사용자가 메세지를 전송했을 때 시행되는 메소드 * */ @Slf4j @Ser..
2024.06.29