Cómo utilizar Wirehark para analizar el protocolo mqtt
MQTT es una tecnología de mensajería lanzada por IBM en 2001.
Para resumir, el mecanismo es utilizar un agente de mensajes de servidor proxy.
El cliente se conecta al servidor y luego le dice al servidor qué tipos de mensajes puedo recibir.
Al mismo tiempo, el cliente también puede publicar sus propios mensajes, que pueden ser obtenidos por otros clientes según el contenido del protocolo.
Siempre que el cliente móvil esté conectado al servidor, puede recibir y publicar mensajes. No es necesario escribir sockets usted mismo.
Bajo ancho de banda, bajo consumo de energía. pequeña cantidad de código. No mucho, es muy simple.
paquete com.pig.test.mqtt;
importar com.ibm.mqtt.MqttClient
importar
com.ibm; .mqtt.MqttException;
importar com.ibm.mqtt.MqttSimpleCallback;
clase pública SubscribeClient {
cadena estática final privada
CONNECTION_STRING = "tcp://192.168.1.60:1883";
booleano estático final privado
CLEAN_START = true;
corto estático final privado KEEP_ALIVE =
30; //Bajo consumo de red, pero es necesario obtener datos a tiempo, latidos 30s
private final static String CLIENT_ID =
"client1"; p >
Cadena estática final privada[] TEMAS =
{
"Prueba/Temas de Prueba/Tema1",
"Prueba/Temas de Prueba/Tema2" ,
"Prueba/TestTopics/Topic3",
"tokudu/client1"
}
privado
final estático int[] QOS_VALUES = {0, 0, 2,
0};
///////////////// //
MqttClient privado mqttClient =
null
SubscribeClient público(String i){
prueba {
<; p> mqttClient =nuevo MqttClient(CONNECTION_STRING);
SimpleCallbackHandler
simpleCallbackHandler = nuevo
SimpleCallbackHandler();
mqttClient.registerSimpleHandler(simpleCallbackHandler); //Método de registro para recibir mensajes
mqttClient.connect(CLIENT_ID i,
CLEAN_START, KEEP_ALIVE);
mqttClient.subscribe (TOPICS,
QOS_VALUES); //Suscríbete al tema
/**
*
Después de completar el suscripción, puede agregar un latido, mantener la red abierta y también puede publicar sus propios mensajes
*/
mqttClient.publish(PUBLISH_TOPICS, "keepalive".getBytes() , QOS_VALUES[0],
true);
} captura
(MqttException e) {
// TODO Bloque de captura generado automáticamente
e.printStackTrace();
} p>
}
/**
* Función de devolución de llamada simple para procesar mensajes de temas recibidos por el cliente
* @author pig
*
*/
clase SimpleCallbackHandler implementa MqttSimpleCallback{
/**
* Cuando el cliente y el agente se desconectan inesperadamente Se activa cuando se abre
* Puedes volver a suscribirte a través de este proceso
*/
@Override
public void connectLost() throws Excepción {
//
TODO Método generado automáticamente
stub
System.out.println("El cliente y el corredor tienen ha sido desconectado ");
}
/**
* Después de que el cliente se suscribe al mensaje, este método es responsable de la devolución de llamada para recibir y procesar el mensaje
* /
@Override
public void
publishArrived(String topicName, byte[] carga útil, int Qos, booleano retenido)
lanza excepción {
// TODO Método generado automáticamente
stub
System.out.println("Suscribirse a tema: "
topicName );
System.out.println("Datos del mensaje: " new
String(payload));
System.out.println("Nivel de mensaje (0, 1, 2): "
Qos);
System.out.println("Si el mensaje se envía tiempo real (falso=tiempo real, verdadero=reservado en el último mensaje del servidor): "
retenido);
}
}
/**
* Devolución de llamada avanzada
* @autor cerdo
*
*/
la clase AdvancedCallbackHandler implementa MqttSimpleCallback{
@Override
conexión vacía públicaLost() lanza una excepción {
//
TODO Generado automáticamente código auxiliar de método
}
@Override
public void PublishArrived(String arg0, byte[] arg1, int
arg2, p>
boolean arg3) arroja una excepción {
// T
ODO Código auxiliar de método
generado automáticamente
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Código auxiliar de método
generado automáticamente
new SubscribeClient("" i);
}
}
servidor intermediario, paquete jar MQTT, recuerde descargarlo, no Solo envíame un mensaje ~
En este punto, si completas el ejemplo del protocolo MQTT de IBM para implementar mensajes push,
habrá problemas de seguridad. tomado en cuenta. Si el cliente ¿Qué debo hacer si incluso vengo a causar problemas?
El broker utilizado anteriormente es rsmb, un servidor mqtt simple.
IBM ha lanzado la versión MQTT V3.1 y ha añadido un mecanismo de verificación de seguridad, así que no temas.
Reimpreso únicamente como referencia, los derechos de autor pertenecen al autor original. Te deseo una vida feliz, acéptala si estás satisfecho