package com.csc.library.websocket; import java.io.IOException; import java.nio.ByteBuffer; import java.util.HashSet; import java.util.Set; import javax.websocket.CloseReason; import javax.websocket.EndpointConfig; 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; import com.csc.library.controller.WebSocketCommandController; import com.csc.library.factory.PackageDataFactory; import com.csc.library.factory.PropertiesFactory; import com.csc.library.properties.DeviceProperties; import com.csc.library.properties.HandleMessageData; import com.csc.library.properties.HandlePackage; @ServerEndpoint(value = "/CSCWS") public class WebSocketController { private ServerWebSocket serverSocket = null; private WebSocketCommandController commandControl = WebSocketCommandController.getInstance(); private HandlePackage handle = new HandleMessageData(); //private static final Set<Session> sessions = new HashSet<Session>(); @OnOpen public void open(Session session, EndpointConfig conf ) throws IOException { serverSocket = ServerWebSocket.getInstance(); DeviceProperties device = new DeviceProperties(); device.setDeviceID("XXXXX"); device.setPassWord("YYYY"); device.setUserName("XYZ"); if(serverSocket.registerSession(session, PropertiesFactory.getInstance().toJson(device))){ //serverSocket. } //sessions.add(session); } @OnClose public void close(Session session , CloseReason closeReason) { } @OnError public void onError(Throwable error) { } @OnMessage public void handleMessage(Session session , String message) throws IOException{ /*for(Session ses : sessions){ ses.getBasicRemote().sendText(message); }*/ System.out.println("========> OnMessage String : "+message); PackageDataFactory.getInstance().handlePackageData(serverSocket.getCscSession(session), handle , message); //commandControl.executeCommand(serverSocket.getCscSession(session), message); } @OnMessage public void handleMessage(Session session , ByteBuffer buffer) throws IOException{ /*for(Session ses : sessions){ ses.getBasicRemote().sendText(message); }*/ System.out.println("========> OnMessage ByteBuffer : "+buffer); //PackageDataFactory.getInstance().handlePackageData(serverSocket.getCscSession(session), handle , message); //commandControl.executeCommand(serverSocket.getCscSession(session), message); } }