java 实现websocket客户端向服务端发送指令及接收服务端返回信息并打印出来
时间: 2023-11-11 21:03:32 浏览: 99
onvif协议ptz服务端和客户端程序
以下是一个简单的Java实现WebSocket客户端向服务端发送指令及接收服务端返回信息并打印出来的示例代码:
```java
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.ByteBuffer;
import java.util.Scanner;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
public class WebSocketExample extends WebSocketClient {
public WebSocketExample(URI serverUri) {
super(serverUri);
}
@Override
public void onOpen(ServerHandshake handshakedata) {
System.out.println("Connected to server");
}
@Override
public void onClose(int code, String reason, boolean remote) {
System.out.println("Disconnected from server");
}
@Override
public void onMessage(String message) {
System.out.println("Received message: " + message);
}
@Override
public void onMessage(ByteBuffer message) {
// Handle binary message if needed
}
@Override
public void onError(Exception ex) {
ex.printStackTrace();
}
public static void main(String[] args) throws URISyntaxException {
WebSocketExample client = new WebSocketExample(new URI("ws://localhost:8080/"));
client.connect();
Scanner scanner = new Scanner(System.in);
while (true) {
String command = scanner.nextLine();
if (command.equals("exit")) {
client.close();
break;
}
client.send(command);
}
}
}
```
在这个示例中,我们使用了Java-WebSocket库来实现WebSocket客户端。我们创建了一个WebSocketExample类,继承WebSocketClient类,并实现了几个回调方法:
- onOpen:当连接到服务器时触发
- onClose:当与服务器断开连接时触发
- onMessage:当接收到服务器发送的文本消息时触发
- onMessage(ByteBuffer message):当接收到服务器发送的二进制消息时触发
- onError:当出现错误时触发
在main方法中,我们创建了一个WebSocketExample实例并连接到服务器。然后,我们使用Scanner来读取用户输入的命令,并使用WebSocketExample实例的send方法将命令发送到服务器。如果用户输入“exit”,我们将关闭WebSocket连接并退出程序。
这个示例只是一个简单的WebSocket客户端,你需要根据你的需求来修改代码,例如处理服务器返回的二进制消息,或者处理错误情况。
阅读全文