package com.huimv.wine.utils; import com.alibaba.fastjson.JSON; import com.huimv.wine.entity.vo.WsEvent; import javax.websocket.RemoteEndpoint; import javax.websocket.Session; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class WebsocketManagerUtil { /** * 记录当前在线的Session */ private static final Map SESSIONS = new ConcurrentHashMap<>(); public static Map getSessions() { return SESSIONS; } /** * 添加session * @param userId * @param session */ public static void addSession(String userId, Session session){ // 此处只允许一个用户的session链接。一个用户的多个连接,我们视为无效。 SESSIONS.putIfAbsent ( userId, session ); } /** * 关闭session * @param userId */ public static void removeSession(String userId){ SESSIONS.remove ( userId ); } public static void sendMessage(Session session, WsEvent wsEvent){ if(session == null){ return; } // 同步 RemoteEndpoint.Async async = session.getAsyncRemote (); System.out.println(wsEvent); async.sendText (JSON.toJSONString(wsEvent)); } }