[java] 자바 웹소켓과 웹소켓 클라이언트의 연동

웹소켓은 실시간 양방향 데이터 통신을 지원하는 프로토콜로, HTTP 기반의 통신과 달리 연결을 유지한 채 데이터를 주고받을 수 있습니다. 이번 포스트에서는 자바 웹소켓 서버웹소켓 클라이언트의 연동에 대해 알아보겠습니다.

웹소켓 서버 개발

첫 번째로, 자바 웹소켓 서버를 개발해야 합니다. MAVEN 또는 Gradle을 사용하여 Java-Websocket 라이브러리를 프로젝트에 추가할 수 있습니다. 다음은 간단한 웹소켓 서버를 구현하는 예제입니다.

import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer;
import java.net.InetSocketAddress;

public class WebSocketServerExample extends WebSocketServer {
    public WebSocketServerExample(int port) {
        super(new InetSocketAddress(port));
    }

    @Override
    public void onOpen(WebSocket conn, ClientHandshake handshake) {
        System.out.println(conn.getRemoteSocketAddress().getAddress().getHostAddress() + " connected");
    }

    @Override
    public void onClose(WebSocket conn, int code, String reason, boolean remote) {
        System.out.println(conn + " disconnected");
    }

    @Override
    public void onMessage(WebSocket conn, String message) {
        System.out.println("Message received: " + message);
    }

    @Override
    public void onError(WebSocket conn, Exception ex) {
        ex.printStackTrace();
    }

    public static void main(String[] args) {
        int port = 8080;
        WebSocketServerExample server = new WebSocketServerExample(port);
        server.start();
        System.out.println("WebSocket server started on port: " + server.getPort());
    }
}

웹소켓 클라이언트 연동

웹소켓 클라이언트는 WebSocket API를 사용하여 다양한 플랫폼과 언어로 개발할 수 있습니다. 예를 들어, JavaScript를 사용하여 웹 브라우저에서 웹소켓 클라이언트를 구현할 수 있습니다. 또는 Java로 독립적인 애플리케이션으로 웹소켓 클라이언트를 개발할 수도 있습니다.

다음은 Java에서 웹소켓 클라이언트를 구현하는 간단한 예제입니다.

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;

public class WebSocketClientExample extends WebSocketClient {

    public WebSocketClientExample(URI serverUri) {
        super(serverUri);
    }

    @Override
    public void onOpen(ServerHandshake handshakedata) {
        System.out.println("Connected to server");
    }

    @Override
    public void onMessage(String message) {
        System.out.println("Message received: " + message);
    }

    @Override
    public void onClose(int code, String reason, boolean remote) {
        System.out.println("Connection closed");
    }

    @Override
    public void onError(Exception ex) {
        ex.printStackTrace();
    }

    public static void main(String[] args) {
        String serverUri = "ws://localhost:8080";
        WebSocketClientExample client = new WebSocketClientExample(URI.create(serverUri));
        client.connect();
    }
}

결론

이렇게하면 자바 웹소켓 서버웹소켓 클라이언트를 연동할 수 있습니다. 웹소켓을 활용하면 실시간으로 데이터를 주고받는 웹 기반 애플리케이션을 쉽게 구현할 수 있습니다.

더 많은 자세한 정보를 원하시면 Java-Websocket 라이브러리의 공식 문서를 참조하십시오.

Java-Websocket 라이브러리 공식 문서