Red de conocimiento informático - Material del sitio web - Cómo utilizar Wirehark para analizar el protocolo mqtt

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";

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();

}

}

/**

* 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,

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