HOWTO · Java
Java의 WebSocket 클라이언트
이 자습서는 Java에서 WebSocket 클라이언트를 만드는 방법을 보여줍니다.
이 페이지의 내용
이 자습서는 Java에서 WebSocket 클라이언트를 만드는 방법을 보여줍니다.
Java의 WebSocket 클라이언트
WebSocket을 사용하여 클라이언트와 서버 간의 통신 채널을 만들 수 있습니다. WebSocket 프로토콜은 웹 통신에 사용되는 HTTP와 호환됩니다.
WebSocket 프로토콜에는 HTTP에 대한 두 가지 개선 사항이 있습니다. 첫 번째는 HTTP보다 오버헤드가 적고 두 번째는 양방향 웹 통신입니다.
클라이언트와 서버는 클라이언트가 데이터 송수신에 사용되고 서버가 통신에 사용되는 WebSocket 통신의 일부입니다.
WebSocket을 사용하여 클라이언트를 생성해 보겠습니다.
-
먼저 클래스에
ClientEndpoint로 주석을 달아야 합니다. -
그런 다음
ClientManager를 생성하고 클라이언트인 주석이 달린 끝점에 연결하도록 요청해야 합니다. URI는 서버를 지정합니다. -
연결이 설정되면 논리는 서버와 유사합니다.
-
메서드가 열리거나 메시지가 수신되거나 연결이 닫히면
onOpen(),onMessage()또는onClose()가 자동으로 호출됩니다.
다음은 위의 사항을 사용하는 클라이언트의 예입니다.
package delftstack;
import java.io.*;
import java.net.URI;
import javax.websocket.*;
@ClientEndpoint
public class Client_Endpoint {
@OnOpen
public void onOpen(Session Client_Session) {
System.out.println("--- Connection Successful " + Client_Session.getId());
try {
Client_Session.getBasicRemote().sendText("Start");
} catch (IOException e) {
e.printStackTrace();
}
}
@OnMessage
public String onMessage(String Client_Message, Session Client_Session) {
BufferedReader Buffered_Reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("--- Message Received " + Client_Message);
String User_Input = Buffered_Reader.readLine();
return User_Input;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@OnClose
public void onClose(Session Client_Session, CloseReason Close_Reason) {
System.out.println("--- Session ID: " + Client_Session.getId());
System.out.println("--- Closing Reason: " + Close_Reason);
}
public static void main(String[] args) {
ClientManager Client_Manager = ClientManager.createClient();
try {
URI uri = new URI("ws://localhost:8080");
Client_Manager.connectToServer(MyClientEndpoint.class, uri);
while (true) {
}
} catch (DeploymentException | URISyntaxException | InterruptedException e) {
e.printStackTrace();
}
}
}
이 코드는 채팅 기반 시스템용 클라이언트를 구현합니다. 연결이 열리면 클라이언트는 Client_Session.getBasicRemote().sendText()를 사용하여 서버에 메시지를 보냅니다.
서버는 메시지를 수신하고 동일한 문자열로 응답합니다. 이렇게 하면 onMessage() 메서드가 클라이언트에서 실행됩니다.
onMessage() 메서드는 이 시스템의 사용자 입력에서 메시지를 읽습니다.