package com.huimv.wine.utils; import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.util.JSONPObject; import com.huimv.wine.entity.vo.WsEvent; import com.mysql.cj.xdevapi.JsonParser; import javax.websocket.RemoteEndpoint; import javax.websocket.Session; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class WebsocketSellerUtil { /** * 记录当前在线的Session */ private static final Map SESSIONS = new ConcurrentHashMap<>(); /** * 添加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 (); async.sendText (JSON.toJSONString(wsEvent)); } }