1. 创建WebSocket客户端

使用Java中的WebSocketClient类创建WebSocket客户端,首先需要导入Java WebSocket API库。

import javax.websocket.*;
import java.net.URI;

@ClientEndpoint
public class MyWebSocketClient {
    private Session session;

    @OnOpen
    public void onOpen(Session session) {
        System.out.println("Connected to server");
        this.session = session;
    }

    @OnMessage
    public void onMessage(String message) {
        System.out.println("Received message: " + message);
    }

    @OnError
    public void onError(Throwable t) {
        t.printStackTrace();
    }

    @OnClose
    public void onClose() {
        System.out.println("Disconnected from server");
    }

    public void sendMessage(String message) {
        this.session.getAsyncRemote().sendText(message);
    }

    public static void main(String[] args) {
        WebSocketContainer container = ContainerProvider.getWebSocketContainer();
        String uri = "ws://localhost:8080/mywebsocket";
        try {
            MyWebSocketClient client = new MyWebSocketClient();
            container.connectToServer(client, URI.create(uri));
            client.sendMessage("Hello, server!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 创建WebSocket服务端

使用Java中的WebSocketServerEndpoint类创建WebSocket服务端,同样需要导入Java WebSocket API库。

import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

@ServerEndpoint("/mywebsocket")
public class MyWebSocketServer {
    @OnOpen
    public void onOpen(Session session) {
        System.out.println("Connected to client");
    }

    @OnMessage
    public void onMessage(String message, Session session) {
        System.out.println("Received message: " + message);
        try {
            session.getBasicRemote().sendText("Server: " + message);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @OnError
    public void onError(Throwable t) {
        t.printStackTrace();
    }

    @OnClose
    public void onClose(Session session) {
        System.out.println("Disconnected from client");
    }
}
  1. 运行程序

运行MyWebSocketServer类启动WebSocket服务端,然后运行MyWebSocketClient类启动WebSocket客户端,客户端会向服务端发送一条消息并接收服务端的响应消息。

  1. 结果输出

服务端输出:

Connected to client
Received message: Hello, server!
Disconnected from client

客户端输出:

Connected to server
Received message: Server: Hello, server!
Disconnected from server
java实现websocket请求响应模式

原文地址: https://www.cveoy.top/t/topic/ZXo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录