java实现websocket请求响应模式
- 创建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();
}
}
}
- 创建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");
}
}
- 运行程序
运行MyWebSocketServer类启动WebSocket服务端,然后运行MyWebSocketClient类启动WebSocket客户端,客户端会向服务端发送一条消息并接收服务端的响应消息。
- 结果输出
服务端输出:
Connected to client
Received message: Hello, server!
Disconnected from client
客户端输出:
Connected to server
Received message: Server: Hello, server!
Disconnected from server
原文地址: https://www.cveoy.top/t/topic/ZXo 著作权归作者所有。请勿转载和采集!