Package fr.ippon.tatami.service

Source Code of fr.ippon.tatami.service.AtmosphereService

package fr.ippon.tatami.service;

import fr.ippon.tatami.domain.status.AbstractStatus;
import fr.ippon.tatami.service.dto.StatusDTO;
import fr.ippon.tatami.web.atmosphere.TatamiNotification;
import org.atmosphere.cpr.Broadcaster;
import org.atmosphere.cpr.BroadcasterFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import javax.inject.Inject;

@Service
public class AtmosphereService {

    private static final Logger log = LoggerFactory.getLogger(AtmosphereService.class);

    @Inject
    private TimelineService timelineService;

    /**
     * Notifies the user with Atmosphere.
     */
    public void notifyUser(String login, AbstractStatus abstractStatus) {
        log.debug("Notifying user: {}", login);
        StatusDTO statusDTO = timelineService.getStatus(abstractStatus.getStatusId());
        TatamiNotification notification = new TatamiNotification();
        notification.setLogin(login);
        notification.setStatusDTO(statusDTO);
        try {
            Broadcaster broadcaster =
                    BroadcasterFactory
                            .getDefault()
                            .lookup("/realtime/statuses/home_timeline/" + login, true);

            if (broadcaster != null) {
                broadcaster.broadcast(notification);
            } else {
                log.info("Notification error, the broadcaster is null");
            }
        } catch (Exception e) {
            log.warn("Notification error: " + e.getMessage());
        }
    }
}
TOP

Related Classes of fr.ippon.tatami.service.AtmosphereService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.