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 }