package cc.mrbird.febs.websocket; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.socket.CloseStatus; import org.springframework.web.socket.PongMessage; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.TextWebSocketHandler; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * @author xxx * @date 2020-09-01 **/ @Slf4j @Component public class HttpAuthHandler extends TextWebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { Map attributes = session.getAttributes(); String inviteId = (String) attributes.get("inviteId"); WsSessionManager.add(inviteId, session); } @Override protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { log.info("收到消息--{}", message.getPayload()); session.sendMessage(message); } @Override protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception { log.info("心跳"); } @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { log.info("错误 : {}", exception.toString()); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { log.info("连接中断 : {}", status.toString()); String phone = (String) session.getAttributes().get("inviteId"); WsSessionManager.remove(phone); } }