WebsocketSellerUtil.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.huimv.wine.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import com.fasterxml.jackson.annotation.JsonFormat;
  4. import com.fasterxml.jackson.databind.util.JSONPObject;
  5. import com.huimv.wine.entity.vo.WsEvent;
  6. import com.mysql.cj.xdevapi.JsonParser;
  7. import javax.websocket.RemoteEndpoint;
  8. import javax.websocket.Session;
  9. import java.util.Map;
  10. import java.util.concurrent.ConcurrentHashMap;
  11. public class WebsocketSellerUtil {
  12. /**
  13. * 记录当前在线的Session
  14. */
  15. private static final Map<String, Session> SESSIONS = new ConcurrentHashMap<>();
  16. /**
  17. * 添加session
  18. * @param userId
  19. * @param session
  20. */
  21. public static void addSession(String userId, Session session){
  22. // 此处只允许一个用户的session链接。一个用户的多个连接,我们视为无效。
  23. SESSIONS.putIfAbsent ( userId, session );
  24. }
  25. /**
  26. * 关闭session
  27. * @param userId
  28. */
  29. public static void removeSession(String userId){
  30. SESSIONS.remove ( userId );
  31. }
  32. public static void sendMessage(Session session, WsEvent wsEvent){
  33. if(session == null){
  34. return;
  35. }
  36. // 同步
  37. RemoteEndpoint.Async async = session.getAsyncRemote ();
  38. async.sendText (JSON.toJSONString(wsEvent));
  39. }
  40. }