Smack API
- Área: Librerías y Módulos
- Grupo: Librerías para Comunicaciones
- Carácter del recurso: Recomendado
- Tecnologías: Java
Descripción
Smack es una API Open Source para clientes XMPP que esta siendo usada tanto en dispositivos móviles como en grandes servidores.
Ejemplo de uso
Envío de mensajes
El envío de mensajes de ida y vuelta es lo esencial en la mensajería instantánea. Aunque los mensajes individuales pueden ser enviados como paquetes, generalmente es más fácil tratar las cadenas de mensajes en una conversación utilizando la clase org.jivesoftware.smack.Chat. Un objeto Chat crea un nuevo hilo de mensajes (utilizando un identificador de hilo) entre dos usuarios, el siguiente fragmento de código muestra como crear un objeto Chat con un usuario y el envío de un mensaje de texto
XMPPConnection connection = new XMPPConnection(Props.DIRECCION_IP_SERVIDOR);
connection.connect();
connection.login("usuario@servidor", "contrasenia");
Chat chat = connection.getChatManager().createChat("usuario@servidor", new MessageListener() {
public void processMessage(Chat chat, Message message) {
System.out.println("Mensaje Recibido: " + message);
}
});
try {
chat.sendMessage("Hola Mundo!");
}catch (XMPPException e) {
System.out.println("Error en la entrega del mensaje");
}
El MessageListener que se especifica cuando se crea el chat es notificado cada vez que un nuevo mensaje llega desde el otro usuario en la conversación.
El método Chat.sendMessage(String) crea un objeto Message, asigna un valor al cuerpo utilizando una cadena como parámetro y envía el mensaje. Si se quisieran valores adicionales en el mensaje antes de enviarlo, entonces se invocaría el método Chat.createMessage() como en el siguiente código:
Message mensajeNuevo = newChat.createMessage();
mensajeNuevo.setBody("Hola MADEJA");
mensajeNuevo.setProperty("colorFavorito", "azul");
newChat.sendMessage(mensajeNuevo);
Uso y recomendaciones conocidas
- Framework de AMAP Consejo de cantabria
Ventajas e inconvenientes
Las principales ventajas son
- Extremadamente fácil de usar pero al mismo momento con una poderosa API.
- No hace falta programar al nivel de paquetes como otras librerías. Smack provee una interfaz para trabajar a alto nivel como por ejemplo las clases Chat y GroupChat, lo cual permite desarrollar de modo eficiente.
- No hace falta estar familiarizado con el formato XMPP XML ni siquiera con XML.
- Open Source bajo la licencia de Apache, lo cual habilita para poder incluir a Smack en aplicaciones comerciales y no-comerciales.
- Desarrollada en Java aprovechando las características propias del lenguaje
Requisitos e incompatibilidades
- Tener instalada la maquina virtual en la versión 1.2 en adelante
- smack.jar
- smackx.jar
- smackx-debug.jar