PushSocket.java

Aqui defimos el Push para el websocket y guardamos los registros en la base de datos

package com.avbravo.transporte.websocket;

import com.avbravo.jmoordb.configuration.JmoordbContext;
import com.avbravo.jmoordb.mongodb.history.services.AutoincrementableServices;
import com.avbravo.jmoordb.pojos.JmoordbNotifications;
import com.avbravo.jmoordb.profiles.repository.JmoordbNotificationsRepository;
import com.avbravo.jmoordbutils.DateUtil;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.transporteejb.entity.Usuario;
import java.io.Serializable;
import java.util.Calendar;
import static java.util.Locale.filter;
import java.util.logging.Logger;
import javax.enterprise.context.ApplicationScoped;
import javax.faces.push.Push;
import javax.faces.push.PushContext;
import javax.inject.Inject;
import javax.inject.Named;
import org.bson.Document;

@Named
@ApplicationScoped
public class PushSocket implements Serializable {

    private static final Logger LOG = Logger.getLogger(PushSocket.class.getName());
    //Services
    @Inject
    AutoincrementableServices autoincrementableServices;
    @Inject
    JmoordbNotificationsRepository jmoordbNotificationsRepository;
    
    @Inject
    @Push(channel = "notification")
    private PushContext push;
    private String value = "";
    
    public String getValue() {
        return value;
    }
    
    public void setValue(String value) {
        this.value = value;
    }
    
    public void clockAction() {
        try {
            
            Calendar now = Calendar.getInstance();
            
            String time = now.get(Calendar.HOUR_OF_DAY) + ":" + now.get(Calendar.MINUTE) + ":" + now.get(Calendar.SECOND);
            
            value = time;
        

            //Guardarlo en la base de datos
            JmoordbNotifications jmoordbNotifications = new JmoordbNotifications();
            Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
            jmoordbNotifications.setIdjmoordbnotifications(autoincrementableServices.getContador("jmoordbnNotifications"));
            jmoordbNotifications.setUsername(jmoordb_user.getUsername());
            jmoordbNotifications.setMessage(value);
            jmoordbNotifications.setViewed("no");
            jmoordbNotifications.setDate(DateUtil.fechaActual());
            jmoordbNotifications.setType("prueba");
            jmoordbNotificationsRepository.save(jmoordbNotifications);
            
               push.send(time);
        } catch (Exception e) {
            JsfUtil.errorDialog("socket()", e.getLocalizedMessage());
        }

    }
    

}

Last updated