/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cz.kiwi.cometd.websocket.protocol;

import cz.kiwi.cometd.App;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
import org.eclipse.jetty.websocket.WebSocket;

/**
 *
 * @author esner
 */
public class WebSocketKiwiLogProtocol implements WebSocket.OnTextMessage {
    private static final Logger logger = Log.getLogger(WebSocketKiwiLogProtocol.class);
    
    WebSocket.Connection _connection;
 
    public void onOpen(WebSocket.Connection connection) {
      logger.info("LOG: opening connection: " + connection.toString());
        
      _connection=connection;
    }
 
    public void onClose(int closeCode, String message)
    {
         logger.info("LOG: closing connection: " + closeCode);
         _connection = null;
    }
 
    public void onMessage(String message)
    {
       logger.info("LOG: message: " + message); 
       Map<String, Object> data = new HashMap<String, Object>();
       
       data.put("data", message);
       
       if (App.cometdKiwiClient != null && App.cometdKiwiClient.publishLogMessage(data)) {
           if (_connection != null) {
                try {
                    _connection.sendMessage(message); //ack
                } catch (IOException e) {
                    logger.info("Error in sending log ack: " + e.getMessage());
                }
           }
       }
    }
}