websocket实时推送数据纯java
时间: 2023-08-11 12:57:18 浏览: 44
在Java中,你可以使用Java WebSocket API来实现实时推送数据。下面是一个简的示例代码:
```java
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
java.io.IOException;
import java.util.concurrent.CopyOnWriteArrayList;
@ServerEndpoint("/websocket")
public class WebSocketServer {
static CopyOnWriteArrayList<Session> sessions = new CopyOnWriteArrayList<>();
@OnOpen
public void onOpen(Session session) {
sessions.add(session);
}
@OnMessage
public void onMessage(String message, Session session) {
// 处理客户端发送的消息
}
@OnClose
public void onClose(Session session) {
sessions.remove(session);
}
@OnError
public void onError(Throwable error) {
// 处理错误
}
public static void pushMessage(String message) {
for (Session session : sessions) {
try {
session.getBasicRemote().sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
上述代码使用了`@ServerEndpoint`注解来定义WebSocket服务器端点。`@OnOpen`、`@OnMessage`、`@OnClose`和`@OnError`注解分别用于处理连接建立、接收消息、连接关闭和错误发生时的事件。
`pushMessage`方法用于向所有连接的客户端推送消息。
你可以将上述代码部署到你的Java Web应用程序中,然后通过访问`ws://your-domain/websocket`来与服务器进行WebSocket通信。在需要推送数据时,调用`WebSocketServer.pushMessage`方法即可。