websocket简单使用

@ServerEndpoint(value = "/datatrans/socketServer/{datatransSocket}") @Component public class SocketServer { private Session session; private static Map<String, Session> sessionPool = new ConcurrentHashMap<>(); private static Map<String, String> sessionIds = new ConcurrentHashMap<>(); public SocketServer() { } @OnOpen public void open(Session session, @PathParam(value = "datatransSocket") String datatransSocket) { this.session = session; sessionPool.put(datatransSocket, session); sessionIds.put(session.getId(), datatransSocket); System.out.println("websocket-成功"); } @OnMessage public void onMessage(String message) { System.out.println("当前发送人sessionid为" + session.getId() + "发送内容为" + message); } @OnClose public void onClose() { sessionPool.remove(sessionIds.get(session.getId())); sessionIds.remove(session.getId()); } @OnError public void onError(Session session, Throwable error) { error.printStackTrace(); } public void sendMessage( String message) { Session session = sessionPool.get("datatransSocket"); if (session == null) { return; } synchronized (session) { if (session != null) { try { session.getBasicRemote().sendText(message); } catch (IOException e) { e.printStackTrace(); } } } } public static int getOnlineNum() { return sessionPool.size(); } public String getOnlineTUsers() { StringBuilder TUsers = new StringBuilder(); for (String key : sessionIds.keySet()) { TUsers.append(sessionIds.get(key)).append("---------"); } return TUsers.toString(); } public void sendAll(String msg) { //for (String key : sessionIds.keySet()) { // sendMessage(sessionIds.get(key), msg); //} sendMessage(msg); } public void sendMany(String msg, String[] persons) { for (String TUserid : persons) { sendMessage(msg); } } }
yian
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)