使用Java WebSocket实现客户端和服务器的双向通信
Java WebSocket API允许你在Java应用程序中实现客户端和服务器之间的双向通信。以下是使用Java WebSocket实现客户端和服务器双向通信的基本步骤和代码示例。
服务器端1. 添加依赖:首先,你需要在你的项目中添加Java WebSocket的依赖。如果你使用Maven,可以在pom.xml
文件中添加以下依赖:
```xml
``2. **创建WebSocket服务器**:创建一个继承自
WebSocketServer的类,并重写
onOpen、
onMessage、
onClose和
onError`方法。
```javaimport org.java_websocket.server.WebSocketServer;
import org.java_websocket.WebSocket;
import java.net.InetSocketAddress;
public class MyWebSocketServer extends WebSocketServer {
public MyWebSocketServer(int port) {
super(new InetSocketAddress(port));
}
@Override public void onOpen(WebSocket conn, ClientHandshake handshake) {
System.out.println(“New connection: “ + conn.getRemoteSocketAddress());
}
@Override public void onClose(WebSocket conn, int code, String reason, boolean remote) {
System.out.println(“Connection closed: “ + conn.getRemoteSocketAddress());
}
@Override public void onMessage(WebSocket conn, String message) {
System.out.println(“Received message from “ + conn.getRemoteSocketAddress() + “: “ + message);
//将消息广播给所有连接的客户端 broadcast(message);
}
@Override public void onError(WebSocket conn, Exception ex) {
ex.printStackTrace();
}
@Override public void onStart() {
System.out.println(“Server started!”);
}
}
```3. 启动服务器:在主方法中启动服务器。
javapublic class WebSocketServerMain {
public static void main(String[] args) {
int port =8887; //选择一个端口 MyWebSocketServer server = new MyWebSocketServer(port);
server.start();
}
}
###客户端1. 创建WebSocket客户端:创建一个继承自WebSocketClient
的类,并重写onOpen
、onMessage
、onClose
和onError
方法。
```javaimport org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
public class MyWebSocketClient extends WebSocketClient {
public MyWebSocketClient(URI serverUri) {
super(serverUri);
}
@Override public void onOpen(ServerHandshake handshakedata) {
System.out.println(“Connected to the server”);
}
@Override public void onMessage(String message) {
System.out.println(“Received message from server: “ + message);
}
@Override public void onClose(int code, String reason, boolean remote) {
System.out.println(“Disconnected from server”);
}
@Override public void onError(Exception ex) {
ex.printStackTrace();
}
}
```2. 连接到服务器:在主方法中创建客户端实例并连接到服务器。
javapublic class WebSocketClientMain {
public static void main(String[] args) {
try {
URI serverUri = new URI("ws://localhost:8887");
MyWebSocketClient client = new MyWebSocketClient(serverUri);
client.connectBlocking(); //同步连接// 发送消息 client.send("Hello Server!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
这个简单的示例展示了如何使用Java WebSocket实现客户端和服务器之间的基本双向通信。你可以根据需要扩展这些类,添加更多的功能和错误处理。
还没有评论,来说两句吧...