WebsocketSellerUtil.java 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 org.springframework.util.ObjectUtils;
  8. import javax.websocket.RemoteEndpoint;
  9. import javax.websocket.Session;
  10. import java.util.Map;
  11. import java.util.concurrent.ConcurrentHashMap;
  12. public class WebsocketSellerUtil {
  13. /**
  14. * 记录当前在线的Session
  15. */
  16. private static final Map<String, Session> SESSIONS = new ConcurrentHashMap<>();
  17. /**
  18. * 添加session
  19. * @param userId
  20. * @param session
  21. */
  22. public static void addSession(String userId, Session session){
  23. // 此处只允许一个用户的session链接。一个用户的多个连接,我们视为无效。
  24. SESSIONS.putIfAbsent ( userId, session );
  25. }
  26. /**
  27. * 关闭session
  28. * @param userId
  29. */
  30. public static void removeSession(String userId){
  31. SESSIONS.remove ( userId );
  32. }
  33. public static void sendMessage(Session session, WsEvent wsEvent){
  34. if(session == null){
  35. return;
  36. }
  37. RemoteEndpoint.Async async = session.getAsyncRemote ();
  38. async.sendText (JSON.toJSONString(wsEvent));
  39. }
  40. }