com.company.project.config.PresenceChannelInterceptor.java Source code

Java tutorial

Introduction

Here is the source code for com.company.project.config.PresenceChannelInterceptor.java

Source

/*
 * Copyright 2014 Romer.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.company.project.config;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.simp.stomp.StompHeaderAccessor;
import org.springframework.messaging.support.ChannelInterceptorAdapter;

/**
 *
 * @author Romer
 */
public class PresenceChannelInterceptor extends ChannelInterceptorAdapter {
    private final Log logger = LogFactory.getLog(PresenceChannelInterceptor.class);

    @Override
    public void postSend(Message<?> message, MessageChannel channel, boolean sent) {

        StompHeaderAccessor sha = StompHeaderAccessor.wrap(message);

        // ignore non-STOMP messages like heartbeat messages
        if (sha.getCommand() == null) {
            return;
        }

        String sessionId = sha.getSessionId();

        switch (sha.getCommand()) {
        case CONNECT:
            logger.debug("STOMP Connect [sessionId: " + sessionId + "]");
            break;
        case CONNECTED:
            logger.debug("STOMP Connected [sessionId: " + sessionId + "]");
            break;
        case DISCONNECT:
            logger.debug("STOMP Disconnect [sessionId: " + sessionId + "]");
            break;
        default:
            break;

        }
    }
}