/* * 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/{id}", decoders = MessageDecoder.class, encoders = MessageEncoder.class) public class ApplicationEndpoint { 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){ 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_APPLICATION_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(); } }