使用Java WebSocket进行实时通信示例
Java WebSocket API 是一个用于在Java应用程序中实现WebSocket通信的API。以下是使用Java WebSocket进行实时通信的一个简单示例。这个示例包括一个简单的WebSocket服务器和一个客户端。
WebSocket服务器端首先,你需要一个WebSocket服务器来接收和发送消息。这里我们使用org.java_websocket
库,这是一个流行的Java WebSocket库。
1.将Java-WebSocket
库添加到你的项目中。如果你使用Maven,可以在pom.xml
文件中添加以下依赖:
```xml
```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进行基本的实时通信。服务器接收来自客户端的消息并将其回显给客户端,客户端接收到回显的消息并打印出来。你可以根据需要扩展这个示例,以实现更复杂的通信逻辑。
还没有评论,来说两句吧...