bunti/bunti_server/src/main/java/de/ctdo/bunti/websocket/BuntiControllerApplication....

58 lines
1.6 KiB
Java

package de.ctdo.bunti.websocket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import com.sun.grizzly.tcp.Request;
import com.sun.grizzly.websockets.ProtocolHandler;
import com.sun.grizzly.websockets.WebSocket;
import com.sun.grizzly.websockets.WebSocketApplication;
import com.sun.grizzly.websockets.WebSocketListener;
import de.ctdo.bunti.control.BuntiController;
@Component
public class BuntiControllerApplication extends WebSocketApplication {
Logger logger = LoggerFactory.getLogger(BuntiControllerApplication.class);
@Override
public WebSocket createWebSocket(ProtocolHandler protocolHandler, WebSocketListener... listeners) {
BuntiControllerWebSocket socket = new BuntiControllerWebSocket(protocolHandler, listeners);
BuntiController.getInstance().addListener(socket);
return socket;
}
@Override
public boolean isApplicationRequest(Request request) {
final String uri = request.requestURI().toString();
return uri.endsWith("/bunti");
}
@Override
public void onClose(WebSocket socket, com.sun.grizzly.websockets.DataFrame frame) {
BuntiControllerWebSocket ws = (BuntiControllerWebSocket) socket;
BuntiController.getInstance().removeListener(ws);
}
@Override
public void onMessage(WebSocket socket, String text) {
BuntiController.getInstance().performJSONString(text);
// for (final WebSocket webSocket : getWebSockets()) {
// DMXControllerWebSocket ws = (DMXControllerWebSocket) webSocket;
//
//
// }
//super.onMessage(socket, text);
}
}