使用java帮我写一个websocket客户端
时间: 2023-08-04 12:26:45 浏览: 102
好的,以下是一个简单的Java WebSocket客户端的示例代码:
```java
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Scanner;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
public class WebSocketExample {
public static void main(String[] args) throws InterruptedException {
String serverUri = "ws://localhost:8080"; // WebSocket服务器地址
CountDownLatch latch = new CountDownLatch(1); // 用于同步的锁
WebSocketClient client = null;
try {
// 创建WebSocket客户端
client = new WebSocketClient(new URI(serverUri)) {
@Override
public void onOpen(ServerHandshake handshake) {
System.out.println("WebSocket连接已建立");
latch.countDown(); // 释放锁
}
@Override
public void onMessage(String message) {
System.out.println("收到消息:" + message);
}
@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println("WebSocket连接已关闭");
}
@Override
public void onError(Exception ex) {
System.err.println("WebSocket连接出错:" + ex.getMessage());
}
};
// 启动WebSocket客户端
client.connect();
latch.await(5, TimeUnit.SECONDS); // 等待WebSocket连接建立
// 从输入流中读取用户输入,并发送到WebSocket服务器
Scanner scanner = new Scanner(System.in);
while (true) {
String input = scanner.nextLine();
if ("exit".equals(input)) {
break;
}
client.send(input);
}
} catch (URISyntaxException e) {
System.err.println("WebSocket连接地址无效:" + e.getMessage());
} finally {
if (client != null) {
client.close();
}
}
}
}
```
这个示例代码使用了Java-WebSocket库,可以通过Maven添加以下依赖:
```xml
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.5.1</version>
</dependency>
```
这个WebSocket客户端会连接到指定的WebSocket服务器,建立连接后,从标准输入中读取用户输入,并发送到WebSocket服务器。当用户输入"exit"时,退出程序。在接收到来自WebSocket服务器的消息时,会将消息输出到控制台。
阅读全文