帮我写一段java的Websocket推送代码
时间: 2023-02-25 09:23:09 浏览: 113
Java中websocket消息推送的实现代码
好的,这是一段 Java WebSocket 推送的代码示例:
```
import javax.websocket.OnOpen;
import javax.websocket.OnMessage;
import javax.websocket.OnClose;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@ServerEndpoint("/push")
public class WebSocketPush {
private static final Set<Session> sessions = Collections.synchronizedSet(new HashSet<Session>());
@OnOpen
public void onOpen(Session session) {
sessions.add(session);
}
@OnClose
public void onClose(Session session) {
sessions.remove(session);
}
@OnMessage
public void onMessage(String message, Session session) {
for (Session s : sessions) {
try {
s.getBasicRemote().sendText(message);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
该代码实现了服务端与客户端的 WebSocket 通信,通过 `@ServerEndpoint` 注解指定了 WebSocket 服务的地址为 "/push"。当客户端与服务端建立连接时,会触发 `onOpen` 方法,将客户端的 `Session` 对象加入到服务端维护的 `sessions` 集合中;当客户端与服务端断开连接时,会触发 `onClose` 方法,将客户端的 `Session` 对象从 `sessions` 集合中移除;当客户端发送消息到服务端时,会触发 `onMessage` 方法,服务端会遍历所有的 `Session` 对象,并向它们发送消息。
阅读全文