/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
*/
|
package com.megatim.fdxconsultation.service.impl.sockets;
|
|
import com.megatim.fdxconsultation.core.ifaces.administration.UserManager;
|
import com.megatim.fdxconsultation.model.administration.User;
|
import com.megatim.fdxconsultation.model.message.systeme.MessageDecoder;
|
import com.megatim.fdxconsultation.model.message.systeme.MessageEncoder;
|
import com.megatim.fdxconsultation.model.message.systeme.ApplicationData;
|
import com.megatim.fdxconsultation.model.message.systeme.UserSesionApplication;
|
import com.megatim.fdxconsultation.tools.context.AppCommonContext;
|
import java.io.IOException;
|
import javax.inject.Inject;
|
import javax.websocket.EncodeException;
|
import javax.websocket.OnClose;
|
import javax.websocket.OnError;
|
import javax.websocket.OnMessage;
|
import javax.websocket.OnOpen;
|
import javax.websocket.Session;
|
import javax.websocket.server.PathParam;
|
import javax.websocket.server.ServerEndpoint;
|
|
/**
|
*
|
* @author
|
*/
|
@ServerEndpoint(
|
value = "/application/message/{id}",
|
decoders = MessageDecoder.class,
|
encoders = MessageEncoder.class)
|
public class MessageSystemeEndpoint {
|
|
private final UserSesionApplication userSesion = UserSesionApplication.getInstance();
|
|
@Inject
|
private UserManager userManager;
|
|
@OnOpen
|
public void onOpen(
|
Session session,
|
@PathParam("id") Long id) throws IOException, EncodeException {
|
|
//Variables
|
User utilisateur = null;
|
|
//Si id renseigné
|
if(id != null){
|
|
//On recupère l'utilisateur
|
utilisateur = userManager.findById(id);
|
|
}
|
|
//Si non null
|
if(utilisateur != null){
|
|
//On conserve la session et l'utilisateur associé
|
userSesion.addSession(utilisateur, session, AppCommonContext.CODE_WEB_SOCKET_PATH_SYSTEME_MESSAGE);
|
|
}
|
|
}
|
|
@OnMessage
|
public void onMessage(Session session, ApplicationData message)
|
throws IOException, EncodeException {
|
}
|
|
@OnClose
|
public void onClose(Session session) throws IOException, EncodeException {
|
|
//On supprime la session
|
userSesion.removeSession(session);
|
|
}
|
|
@OnError
|
public void onError(Session session, Throwable throwable) {
|
|
//On affiche le message d'erreur
|
throwable.printStackTrace();
|
|
}
|
|
}
|