none
Ejecutar javascript con MQTT broker RRS feed

  • Pregunta

  • Hola a todos

    Me encuentro desarrollando una platarofma con mensajes en tiempo real, utilizo la libreria de M2qtt y de broker Mosquitto.

    Mi problema es que quiero ejecutar una funcion script dentro del código al momento de recibir el mensaje pero no funciona, tengo el siguiente código

     void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            var mensaje = System.Text.Encoding.Default.GetString(e.Message);
    
    
            string script = @"<script type='text/javascript'>
                            NombreFuncionJavascript();
                      </script>";
    
            ScriptManager.RegisterStartupScript(this, typeof(Page), "invocarfuncion", script, false);
        }


    esto en HTML

        <script>
            function NombreFuncionJavascript(){
                alert("Alerta");
            }
        </script>

    Alguien conoce otra forma de hacer esto

    Gracias de antemano

    lunes, 30 de abril de 2018 19:59

Respuestas

  • >>Todo está bien hasta aqui pero el problema es que desde la clase no puedo actualizar la página

    aqui es donde entra en juego SignalR

    >>Cómo actualizo la página desde la clase"client?MqttMsgPublishReceived"

    con SignalR

    analizaste el link que propuse?

    >>Puedo con SignalR recibir mensajes de Mqtt?

    no

    mqtt se recibe en el codigo servidor con el evento que defines, desde alli deberias enviar un evento SignalR al browser para notificarlo de la actualizacion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta JlarzateC miércoles, 2 de mayo de 2018 18:58
    miércoles, 2 de mayo de 2018 18:05

Todas las respuestas

  • hola

    pero hay algun evento en el browser que actualice la pagina, o como esta libreria enviaria codigo al browser?

    entiendo que ese evento se da en el servidor, para realizar una accion en el cliente necesitas un push server, lo cual se logra com websocket

    esto se implementa en asp.net usando SignalR

    creo que deberias evaluar usar esta tecnica para informar al browser cuando se recibe un evento desde M2qtt

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 2 de mayo de 2018 5:00
  • Hola Leandro Tuttini, la señal la recibe desde un raspberry, yo estoy suscrito a un topico con M2qtt y así recibo la señal en tiempo real, por medio del mensaje

    Todo está bien hasta aqui pero el problema es que desde la clase

     void client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {

    no puedo actualizar la página, ni mandar un script, es lo que quisiera saber, o tan solo que cuando llegue el mensaje actualice la página

    1. Cómo actualizo la página desde la clase"client?MqttMsgPublishReceived" (ya intenté con redirect y no funciona)

    2. Puedo con SignalR recibir mensajes de Mqtt?

    Gracias por tu apoyo

    miércoles, 2 de mayo de 2018 17:50
  • >>Todo está bien hasta aqui pero el problema es que desde la clase no puedo actualizar la página

    aqui es donde entra en juego SignalR

    >>Cómo actualizo la página desde la clase"client?MqttMsgPublishReceived"

    con SignalR

    analizaste el link que propuse?

    >>Puedo con SignalR recibir mensajes de Mqtt?

    no

    mqtt se recibe en el codigo servidor con el evento que defines, desde alli deberias enviar un evento SignalR al browser para notificarlo de la actualizacion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta JlarzateC miércoles, 2 de mayo de 2018 18:58
    miércoles, 2 de mayo de 2018 18:05