java实现websocket
时间: 2023-08-30 20:05:18 浏览: 39
Java 可以通过使用 Java WebSocket API 实现 WebSocket。
以下是一个简单的 Java WebSocket 服务器的示例代码:
```java
import java.io.IOException;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/websocket")
public class MyWebSocket {
@OnMessage
public void onMessage(Session session, String message) throws IOException {
System.out.println("Received message: " + message);
session.getBasicRemote().sendText("Received message: " + message);
}
@OnOpen
public void onOpen(Session session) {
System.out.println("Connected ... " + session.getId());
}
@OnClose
public void onClose(Session session) {
System.out.println("Closed ... " + session.getId());
}
@OnError
public void onError(Session session, Throwable throwable) {
System.out.println("Error ... " + session.getId() + " : " + throwable.getMessage());
}
}
```
上面的代码使用了 `javax.websocket` API 中的注解来定义 WebSocket 服务器端点。当客户端连接到服务器时,`@OnOpen` 注解的方法会被调用。当客户端发送消息时,`@OnMessage` 注解的方法会被调用。当连接关闭时,`@OnClose` 注解的方法会被调用。如果有任何错误发生,`@OnError` 注解的方法会被调用。
要创建一个 WebSocket 客户端,可以使用 `javax.websocket` API 的 `Session` 类。以下是一个简单的 Java WebSocket 客户端的示例代码:
```java
import java.net.URI;
import javax.websocket.*;
public class MyClient {
public static void main(String[] args) throws Exception {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
String uri = "ws://localhost:8080/myapp/websocket";
System.out.println("Connecting to " + uri);
Session session = container.connectToServer(MyClientEndpoint.class, URI.create(uri));
session.getBasicRemote().sendText("Hello");
}
}
```
上面的代码使用了 `javax.websocket` API 中的 `WebSocketContainer` 类来创建一个 WebSocket 连接。`MyClientEndpoint` 是一个客户端端点类,用于处理接收到的消息。`Session` 类用于发送消息。
以上就是一个简单的 Java WebSocket 的实现示例。