java发送websocket请求
时间: 2023-08-04 09:15:32 浏览: 42
Java发送WebSocket请求可以使用Java API中提供的WebSocketClient类。下面是一个简单的示例:
```java
import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
import org.eclipse.jetty.websocket.client.WebSocketClient;
public class WebSocketExample {
public static void main(String[] args) throws Exception {
String destUri = "ws://localhost:8080/mywebsocket";
WebSocketClient client = new WebSocketClient();
SimpleEchoSocket socket = new SimpleEchoSocket();
try {
client.start();
URI echoUri = new URI(destUri);
ClientUpgradeRequest request = new ClientUpgradeRequest();
client.connect(socket, echoUri, request);
System.out.printf("Connecting to : %s%n", echoUri);
socket.awaitClose(5, TimeUnit.SECONDS);
} finally {
client.stop();
}
}
private static class SimpleEchoSocket extends WebSocketAdapter {
private final CountDownLatch closeLatch;
public SimpleEchoSocket() {
this.closeLatch = new CountDownLatch(1);
}
@Override
public void onWebSocketClose(int statusCode, String reason) {
System.out.printf("Connection closed: %d - %s%n", statusCode, reason);
this.closeLatch.countDown();
}
@Override
public void onWebSocketConnect(Session session) {
System.out.printf("Connected to server: %s%n", session.getRemoteAddress().getHostName());
try {
session.getRemote().sendString("Hello, World!");
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onWebSocketText(String message) {
System.out.printf("Received message: %s%n", message);
}
public void awaitClose(int duration, TimeUnit unit) throws InterruptedException {
this.closeLatch.await(duration, unit);
}
}
}
```
在上面的示例中,我们使用了Jetty WebSocket API,它提供了WebSocketClient类。我们创建了一个WebSocketClient对象,并创建了一个SimpleEchoSocket对象。然后,我们使用client.connect()方法连接到WebSocket服务器。最后,我们使用socket.awaitClose()方法等待WebSocket连接关闭。在SimpleEchoSocket中,我们实现了一些WebSocket事件的处理方法,如onWebSocketConnect()、onWebSocketText()和onWebSocketClose()。在onWebSocketConnect()方法中,我们发送了一条Hello, World!消息。