使用Java WebSocket实现客户端和服务器的双向通信

原创 深藏阁楼爱情的钟 2024-11-13 23:47 43阅读 0赞

Java WebSocket API允许你在Java应用程序中实现客户端和服务器之间的双向通信。以下是使用Java WebSocket实现客户端和服务器双向通信的基本步骤和代码示例。

服务器端1. 添加依赖:首先,你需要在你的项目中添加Java WebSocket的依赖。如果你使用Maven,可以在pom.xml文件中添加以下依赖:

```xml

org.java-websocket

Java-WebSocket

1.5.2

``2. **创建WebSocket服务器**:创建一个继承自WebSocketServer的类,并重写onOpenonMessageonCloseonError`方法。

```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的类,并重写onOpenonMessageonCloseonError方法。

```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实现客户端和服务器之间的基本双向通信。你可以根据需要扩展这些类,添加更多的功能和错误处理。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,43人围观)

还没有评论,来说两句吧...

相关阅读