1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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<String, Session> SESSIONS = new ConcurrentHashMap<>();
- public static Map<String, Session> 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));
- }
- }
|