帮我写一段websocket代码
时间: 2023-07-25 19:43:18 浏览: 142
websocket代码
好的,以下是一个简单的Java WebSocket服务器端代码示例:
```java
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/websocket")
public class WebSocketServer {
private static Set<Session> clients = Collections.synchronizedSet(new HashSet<Session>());
@OnOpen
public void onOpen(Session session) {
clients.add(session);
System.out.println("New client connected: " + session.getId());
}
@OnMessage
public void onMessage(String message, Session session) throws IOException {
System.out.println("Received message from " + session.getId() + ": " + message);
broadcast(message);
}
@OnClose
public void onClose(Session session) {
clients.remove(session);
System.out.println("Client disconnected: " + session.getId());
}
private void broadcast(String message) throws IOException {
for (Session session : clients) {
session.getBasicRemote().sendText(message);
}
}
}
```
这个WebSocket服务器实现了一个简单的聊天室,所有客户端连接到`/websocket`端点,服务器接收到客户端的消息并将其广播给所有连接的客户端。在`onOpen`方法中,服务器将新客户端的会话添加到客户端集合中,`onClose`方法中,服务器将关闭的会话从客户端集合中删除。`onMessage`方法中,服务器接收到客户端的消息并将其广播给所有连接的客户端。在`broadcast`方法中,服务器遍历客户端集合并将消息发送给每个客户端。
阅读全文