Mensajes en la aplicación UWP
Estas son las fases principales del envío de mensajes:
1.Los datos se comunican desde la aplicación UWP a la solución (que aparece en un control SolutionView de la página UWP).
2.La solución envía los datos al flujo de trabajo de la solución que está en MobileTogether Server, donde se procesan de la forma habitual.
3.Los resultados se devuelven al control SolutionView, donde se pueden (i) presentar como parte de la solución o (ii) pasar a la aplicación UWP para presentarse al usuario o para seguir procesándolos.
Mecanismo de los mensajes
El mensaje que se envía desde una aplicación UWP hasta el servidor recibe el nombre de mensaje incrustado. El mecanismo de los mensajes usa tres funciones de MobileTogether:
•El evento CuandoHayaMensajeIncrustado, que se encuentra en la página del evento
•La fuente de página JSON $MT_EMBEDDEDMESSAGE, que se genera automáticamente si se ha definido al menos una acción para el evento CuandoHayaMensajeIncrustado
•La acción Al devolver mensaje incrustado, que envía una cadena JSON serializada como mensaje de vuelta
Así es como estas funciones se usan para enviar mensajes en las aplicaciones UWP:
•El control SolutionView ahora tiene un método ProcesarMensajeIncrustado (msg) que (i) rellena la fuente de página JSON $MT_EMBEDDEDMESSAGE y (ii) desencadena el evento de página CuandoHayaMensajeIncrustado.
•El control SolutionView ahora tiene un evento llamado MensajeIncrustado que se desencadena cuando se ejecuta la acción Devolver mensaje incrustado en la solución, Este evento se puede sincronizar de forma sincronizada o asíncrona, por ejemplo, con el mecanismo de aplazamiento UWP, como aparece a continuación.
void EmbeddedMessage(object sender, EmbeddedMessageEventArgs e)
{
var deferal = e.GetDeferral();
... Do some parallel processing of e.Message ...
deferal.Complete();
}
Mensajes: paso a paso
A continuación explicamos en detalle los pasos del proceso de envío de mensajes.
De la aplicación UWP al servidor MT
1.El método ProcesarMensajeIncrustado (msg) del código se puede usar para transferir datos desde la aplicación UWP hasta el control SolutionView. Los datos se deben enviar como objeto JSON serializado. (Si sus datos están en formato XML, el documentos XML debe estar envuelto en un objeto JSON.)
2.La solución de destino debe tener un evento CuandoHayaMensajeIncrustado para el que se haya definido al menos una acción. En este caso, cuando llegue un mensaje incrustado a la solución se crea y rellena automáticamente una fuente de página JSON $MT_EMBEDDEDMESSAGE. La fuente de página tiene un elemento raíz llamado json y su estructura y contenido provienen del mensaje incrustado.
3.En el servidor, la fuente de página JSON $MT_EMBEDDEDMESSAGE se puede procesar con acciones del evento CuandoHayaMensajeIncrustado u otras opciones. Con este paso se completa la primera parte de la transferencia de datos, de la aplicación UWP a MobileTogether Server. Ahora se pueden enviar los datos procesados de vuelta a la solución.
De MT Server a la solución a la aplicación UWP
4.La acción Devolver mensaje incrustado envía el mensaje de vuelta al control SolutionView en forma de cadena JSON serializada. Al definir la acción puede indicar qué mensaje quiere enviar. Por ejemplo, en la imagen siguiente la acción indica que el mensaje que se debe enviar de vuelta es la estructura de datos completa almacenada en la fuente de página JSON $MT_EMBEDDEDMESSAGE: es decir, el nodo json de la estructura y su contenido.
5.Cuando se ejecuta la acción Devolver mensaje incrustado de la solución se desencadena el evento MensajeIncrustado del control SolutionView. Ahora el código de la aplicación UWP puede procesar el mensaje incrustado recibido por el control SolutionView.