58 lines
1.6 KiB
Java
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);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|