websocket实时推送数据 java实现
时间: 2023-05-16 16:07:09 浏览: 144
可以使用Java中的WebSocket API来实现实时推送数据。具体实现可以参考以下代码:
```
@ServerEndpoint("/websocket")
public class WebSocketServer {
private static Set<Session> sessions = Collections.synchronizedSet(new HashSet<Session>());
@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);
}
public static void sendAll(String message) {
for (Session session : sessions) {
try {
session.getBasicRemote().sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在上述代码中,我们使用了Java中的WebSocket API来创建一个WebSocket服务器。通过`@ServerEndpoint("/websocket")`注解来指定WebSocket的URL,当客户端连接到该URL时,会自动调用`onOpen`方法,将该客户端的Session对象加入到sessions集合中。当客户端发送消息时,会自动调用`onMessage`方法进行处理。当客户端关闭连接时,会自动调用`onClose`方法,将该客户端的Session对象从sessions集合中移除。最后,我们定义了一个`sendAll`方法,用于向所有客户端发送消息。
如果你想要实现实时推送数据,可以在`onMessage`方法中处理接收到的消息,并调用`sendAll`方法向所有客户端发送消息。
阅读全文