Example usage for org.springframework.web.socket WebSocketSession getId

List of usage examples for org.springframework.web.socket WebSocketSession getId

Introduction

In this page you can find the example usage for org.springframework.web.socket WebSocketSession getId.

Prototype

String getId();

Source Link

Document

Return a unique session identifier.

Usage

From source file:org.springframework.web.socket.messaging.StompSubProtocolHandler.java

@Override
public void afterSessionStarted(WebSocketSession session, MessageChannel outputChannel) {
    if (session.getTextMessageSizeLimit() < MINIMUM_WEBSOCKET_MESSAGE_SIZE) {
        session.setTextMessageSizeLimit(MINIMUM_WEBSOCKET_MESSAGE_SIZE);
    }/*from w  w  w.  j  av  a2s .  c o m*/
    this.decoders.put(session.getId(), new BufferingStompDecoder(this.stompDecoder, getMessageSizeLimit()));
}

From source file:org.springframework.web.socket.messaging.StompSubProtocolHandler.java

@Override
public void afterSessionEnded(WebSocketSession session, CloseStatus closeStatus, MessageChannel outputChannel) {
    this.decoders.remove(session.getId());

    Message<byte[]> message = createDisconnectMessage(session);
    SimpAttributes simpAttributes = SimpAttributes.fromMessage(message);
    try {//ww w.  java 2 s . c  o  m
        SimpAttributesContextHolder.setAttributes(simpAttributes);
        if (this.eventPublisher != null) {
            Principal user = getUser(session);
            publishEvent(this.eventPublisher,
                    new SessionDisconnectEvent(this, message, session.getId(), closeStatus, user));
        }
        outputChannel.send(message);
    } finally {
        this.stompAuthentications.remove(session.getId());
        SimpAttributesContextHolder.resetAttributes();
        simpAttributes.sessionCompleted();
    }
}

From source file:org.springframework.web.socket.messaging.StompSubProtocolHandler.java

private Message<byte[]> createDisconnectMessage(WebSocketSession session) {
    StompHeaderAccessor headerAccessor = StompHeaderAccessor.create(StompCommand.DISCONNECT);
    if (getHeaderInitializer() != null) {
        getHeaderInitializer().initHeaders(headerAccessor);
    }/*from  w w w.  j  av a2s  . c  om*/

    headerAccessor.setSessionId(session.getId());
    headerAccessor.setSessionAttributes(session.getAttributes());

    Principal user = getUser(session);
    if (user != null) {
        headerAccessor.setUser(user);
    }

    return MessageBuilder.createMessage(EMPTY_PAYLOAD, headerAccessor.getMessageHeaders());
}

From source file:org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.java

@Override
public void afterConnectionEstablished(WebSocketSession session) throws Exception {
    // WebSocketHandlerDecorator could close the session
    if (!session.isOpen()) {
        return;//from  w  w w .  j a v a  2  s .c  om
    }
    this.stats.incrementSessionCount(session);
    session = decorateSession(session);
    this.sessions.put(session.getId(), new WebSocketSessionHolder(session));
    findProtocolHandler(session).afterSessionStarted(session, this.clientInboundChannel);
}

From source file:org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.java

/**
 * Handle an inbound message from a WebSocket client.
 *///from w  w  w . ja  v a2 s. c  o m
@Override
public void handleMessage(WebSocketSession session, WebSocketMessage<?> message) throws Exception {
    WebSocketSessionHolder holder = this.sessions.get(session.getId());
    if (holder != null) {
        session = holder.getSession();
    }
    SubProtocolHandler protocolHandler = findProtocolHandler(session);
    protocolHandler.handleMessageFromClient(session, message, this.clientInboundChannel);
    if (holder != null) {
        holder.setHasHandledMessages();
    }
    checkSessions();
}

From source file:org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.java

private void clearSession(WebSocketSession session, CloseStatus closeStatus) throws Exception {
    if (logger.isDebugEnabled()) {
        logger.debug("Clearing session " + session.getId());
    }/*from  w  ww. jav  a2s .com*/
    if (this.sessions.remove(session.getId()) != null) {
        this.stats.decrementSessionCount(session);
    }
    findProtocolHandler(session).afterSessionEnded(session, closeStatus, this.clientInboundChannel);
}