用java写个websocket 的客户端请求demo
时间: 2023-08-04 21:23:59 浏览: 91
下面是一个简单的 Java WebSocket 客户端请求示例:
```java
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Scanner;
import java.util.concurrent.CountDownLatch;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
public class WebSocketClientDemo {
public static void main(String[] args) throws URISyntaxException, InterruptedException {
String serverUri = "ws://localhost:8080/chat";
CountDownLatch latch = new CountDownLatch(1);
WebSocketClient client = new WebSocketClient(new URI(serverUri)) {
@Override
public void onOpen(ServerHandshake handshakedata) {
System.out.println("Connected to server");
latch.countDown();
}
@Override
public void onMessage(String message) {
System.out.println("Received message: " + message);
}
@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println("Connection closed");
}
@Override
public void onError(Exception ex) {
System.out.println("Error occurred: " + ex.getMessage());
}
};
System.out.println("Connecting to server...");
client.connect();
latch.await();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Enter message to send to server (or 'quit' to exit): ");
String input = scanner.nextLine();
if (input.equalsIgnoreCase("quit")) {
break;
}
client.send(input);
}
scanner.close();
client.close();
}
}
```
这个示例使用了 Java-WebSocket 库来实现 WebSocket 客户端。在 `main` 方法中,我们首先创建了一个 WebSocket 客户端,并使用 `connect` 方法连接到服务器。我们使用 `CountDownLatch` 来等待连接成功的回调函数,然后将 client 对象的实例变量存储在 `client` 变量中。
在 `client` 变量的构造函数中,我们定义了四个回调函数,分别是 `onOpen`、`onMessage`、`onClose` 和 `onError`。`onOpen` 函数在连接成功时调用,我们在这里打印一条消息并调用 `countDown` 方法来释放等待的线程。`onMessage` 函数在接收到消息时调用,我们在这里打印接收到的消息。`onClose` 函数在连接关闭时调用,我们在这里打印一条消息。`onError` 函数在发生错误时调用,我们在这里打印错误消息。
在 `main` 方法中,我们使用 `Scanner` 来读取用户输入并将其发送到服务器。如果用户输入了 `quit`,程序就会退出。最后,我们关闭 Scanner 对象和 WebSocket 客户端对象。
阅读全文