001package de.deepamehta.plugins.websockets.example;
002
003import de.deepamehta.plugins.websockets.WebSocketsService;
004import de.deepamehta.plugins.websockets.event.WebsocketTextMessageListener;
005
006import de.deepamehta.core.Topic;
007import de.deepamehta.core.model.TopicModel;
008import de.deepamehta.core.osgi.PluginActivator;
009import de.deepamehta.core.service.Inject;
010import de.deepamehta.core.service.event.PostUpdateTopicListener;
011
012import java.util.logging.Logger;
013
014
015
016public class WebSocketsExamplePlugin extends PluginActivator implements PostUpdateTopicListener,
017                                                                        WebsocketTextMessageListener {
018
019    // ---------------------------------------------------------------------------------------------- Instance Variables
020
021    @Inject
022    private WebSocketsService webSocketsService;
023
024    private Logger logger = Logger.getLogger(getClass().getName());
025
026    // -------------------------------------------------------------------------------------------------- Public Methods
027
028    // *** Listener Implementations ***
029
030    @Override
031    public void postUpdateTopic(Topic topic, TopicModel newModel, TopicModel oldModel) {
032        webSocketsService.broadcast(getUri(), topic.toJSON().toString());
033    }
034
035    @Override
036    public void websocketTextMessage(String message) {
037        logger.info("### Receiving message from WebSocket client: \"" + message + "\"");
038    }
039}