websocket java代码
时间: 2024-01-25 22:13:10 浏览: 27
以下是Java中使用WebSocket的示例代码:
1. 使用Java WebSocket API实现WebSocket服务器:
```java
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@ServerEndpoint("/websocket/{username}/{img}")
public class WebSocketServer {
@OnOpen
public void onOpen(Session session, @PathParam("username") String username, @PathParam("img") String img) {
System.out.println("WebSocket opened: " + session.getId()); // 在这里可以处理连接建立后的逻辑
}
@OnMessage
public void onMessage(Session session, String message) throws IOException {
System.out.println("Received message: " + message);
// 在这里可以处理接收到的消息
}
@OnClose
public void onClose(Session session) {
System.out.println("WebSocket closed: " + session.getId());
// 在这里可以处理连接关闭后的逻辑
}
@OnError
public void onError(Session session, Throwable throwable) {
System.out.println("WebSocket error: " + session.getId());
throwable.printStackTrace();
// 在这里可以处理错误发生后的逻辑
}
}
```
2. 使用Java WebSocket API实现WebSocket客户端:
```java
import javax.websocket.*;
import java.net.URI;
@ClientEndpoint
public class WebSocketClient {
@OnOpen
public void onOpen(Session session) {
System.out.println("WebSocket opened: " + session.getId());
// 在这里可以处理连接建立后的逻辑
}
@OnMessage
public void onMessage(Session session, String message) {
System.out.println("Received message: " + message);
// 在这里可以处理接收到的消息
}
@OnClose
public void onClose(Session session) {
System.out.println("WebSocket closed: " + session.getId());
// 在这里可以处理连接关闭后的逻辑
}
@OnError
public void onError(Session session, Throwable throwable) {
System.out.println("WebSocket error: " + session.getId());
throwable.printStackTrace();
// 在这里可以处理错误发生后的逻辑
}
public static void main(String[] args) {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
Session session = container.connectToServer(WebSocketClient.class, new URI("ws://localhost:9000/websocket/1234"));
// 在这里可以发送消息
session.getBasicRemote().sendText("Hello, WebSocket!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```