使用Java WebSocket进行实时通信示例

原创 喜欢ヅ旅行 2024-11-13 23:53 198阅读 0赞

Java WebSocket API 是一个用于在Java应用程序中实现WebSocket通信的API。以下是使用Java WebSocket进行实时通信的一个简单示例。这个示例包括一个简单的WebSocket服务器和一个客户端。

WebSocket服务器端首先,你需要一个WebSocket服务器来接收和发送消息。这里我们使用org.java_websocket库,这是一个流行的Java WebSocket库。

1.将Java-WebSocket库添加到你的项目中。如果你使用Maven,可以在pom.xml文件中添加以下依赖:

```xml

org.java-websocket

Java-WebSocket

1.5.2

```2. 创建WebSocket服务器端代码:

```javaimport org.java_websocket.server.WebSocketServer;
import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.framing.Framedata;
import org.java_websocket.drafts.Draft_6455;
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(“Closed connection: “ + conn.getRemoteSocketAddress());
}

@Override public void onMessage(WebSocket conn, String message) {
System.out.println(“Received message from “ + conn.getRemoteSocketAddress() + “: “ + message);
// Echo the message back to the client conn.send(message);
}

@Override public void onError(WebSocket conn, Exception ex) {
ex.printStackTrace();
}

@Override public void onStart() {
System.out.println(“Server started successfully”);
}

public static void main(String[] args) {
int port =8887; // WebSocket server port MyWebSocketServer server = new MyWebSocketServer(port);
server.start();
}
}
```### WebSocket客户端接下来,创建一个WebSocket客户端来连接到服务器并发送消息。

```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(“Opened connection”);
}

@Override public void onMessage(String message) {
System.out.println(“Received: “ + message);
}

@Override public void onClose(int code, String reason, boolean remote) {
System.out.println(“Closed with exit code “ + code + “ additional info: “ + reason);
}

@Override public void onError(Exception ex) {
ex.printStackTrace();
}

public static void main(String[] args) {
try {
URI serverUri = new URI(“ws://localhost:8887”);
MyWebSocketClient client = new MyWebSocketClient(serverUri);
client.connectBlocking(); // Connects and waits until connected client.send(“Hello Server!”); // Send a message to the serverThread.sleep(5000); // Let’s wait a bit before closing client.closeBlocking(); // Closes the connection} catch (Exception e) {
e.printStackTrace();
}
}
}
``###运行示例1.运行MyWebSocketServer类来启动WebSocket服务器。 2.运行MyWebSocketClient`类来连接到服务器并发送消息。

这个简单的示例展示了如何使用Java WebSocket进行基本的实时通信。服务器接收来自客户端的消息并将其回显给客户端,客户端接收到回显的消息并打印出来。你可以根据需要扩展这个示例,以实现更复杂的通信逻辑。

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

发表评论

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

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

相关阅读