Spanish Mqtt reconnect como servicio

josejad

Expert
Licensed User
Longtime User
Creo que lo más fácil, y lo que te recomendaría Erel, es que lo hagas con B4XPages, y evitarás muchos problemas.
Yo lo tengo así hecho en este ejemplo:
 

Manuel Rodriguez

New Member
Licensed User
Muchas gracias José por mostrarme tu código. He visto que escribes en mqtt, yo necesito leer. He conseguido poner el código como servicio pero no es demasiado estable. El tema es que necesito leer un topic de mqtt de forma continua pero con un mínimo de estabilidad y sin interrupciones. Creo que voy a optar por el método post, que aunque tendré que hacer un polling continuo para leer los datos, al menos no perderé ningún dato, ya que lo almacenare en una base de datos. Gracias por tu ayuda.
 

josejad

Expert
Licensed User
Longtime User
Hola Manuel:

También hago una lectura en esta parte:
B4X:
Private Sub client_MessageArrived (Topic As String, Payload() As Byte)
    Log("Topic: " & Topic  & " Mensaje: " & BytesToString(Payload,0,Payload.Length, "UTF-8"))
    toast.Show("Opening Door " & BytesToString(Payload,0,Payload.Length, "UTF-8"))
    t2.Enabled = False 'Stop the wait for an answer timeout
End Sub

Creo que lo más estable que vas a encontrar, es este ejemplo de Erel para mantener un servicio siempre activo (en este caso, de localización GPS).
Puedes modificar ese ejemplo para que en el servicio esté el evento client_MessageArrived.
 
Top