Spring Boot 整合 socket 实现简单聊天
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import java.io.IOException;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
@Controller
@RequestMapping("/chat")
public class ChatController {
private static final BlockingQueue<WebSocketSession> sessions = new LinkedBlockingQueue<>();
@GetMapping("/")
public String index() {
return "chat";
}
@GetMapping("/send")
@ResponseBody
public String send(String message) {
try {
for (WebSocketSession session : sessions) {
session.sendMessage(new TextMessage(message));
}
} catch (IOException e) {
e.printStackTrace();
}
return "Message sent";
}
public void register(WebSocketSession session) throws IOException {
sessions.add(session);
System.out.println("New client connected, total clients: " + sessions.size());
}
}
这个简易的聊天服务器只需要一个控制器类,它处理注册新的WebSocket连接,存储活跃的会话,并允许发送和接收文本消息。这个例子展示了如何使用Spring Boot和WebSocket实现一个基本的实时通信系统。
评论已关闭