001 package de.deepamehta.plugins.websockets;
002
003 import de.deepamehta.plugins.websockets.service.WebSocketsService;
004 import de.deepamehta.core.osgi.PluginActivator;
005
006 import java.util.logging.Level;
007 import java.util.logging.Logger;
008
009
010
011 public class WebSocketsPlugin extends PluginActivator implements WebSocketsService {
012
013 // ------------------------------------------------------------------------------------------------------- Constants
014
015 private static final int WEBSOCKETS_PORT = 8081;
016
017 // ---------------------------------------------------------------------------------------------- Instance Variables
018
019 private WebSocketsServer server;
020
021 private Logger logger = Logger.getLogger(getClass().getName());
022
023 // -------------------------------------------------------------------------------------------------- Public Methods
024
025 // *** WebSocketsService Implementation ***
026
027 @Override
028 public void broadcast(String pluginUri, String message) {
029 server.broadcast(pluginUri, message);
030 }
031
032 // *** Hook Implementations ***
033
034 @Override
035 public void init() {
036 try {
037 logger.info("##### Starting Jetty WebSocket server #####");
038 server = new WebSocketsServer(WEBSOCKETS_PORT, dms);
039 server.start();
040 // ### server.join();
041 logger.info("### Jetty WebSocket server started successfully");
042 } catch (Exception e) {
043 logger.log(Level.SEVERE, "Starting Jetty WebSocket server failed");
044 }
045 }
046
047 @Override
048 public void shutdown() {
049 try {
050 logger.info("##### Stopping Jetty WebSocket server #####");
051 server.stop();
052 } catch (Exception e) {
053 logger.log(Level.SEVERE, "Stopping Jetty WebSocket server failed");
054 }
055 }
056 }