Principales respuestas
Ejecutar javascript con MQTT broker

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