Raúl
Moderator
 Moderator
| Posts: 444 |  | Karma: 6
|
Re:Duda recibiendo el estado de un servicio - 2008/08/12 16:40
Hola, mira con detenimiento los tutoriales de servicios. Especialmente lo que se refiere a las suscripciones. Para recibir actualizaciones de estados de un servicio lo que tienes que hacer es implementar un manejador de suscripciones (en el servicio que provee la información) y desde el servicio que la consume suscribirte al proveedor.
El servicio proveedor de información hará esto cada vez que haya modificado su estado y quiera notificarlo a todos los servicios que estén suscritos:
| Code: | base.SendNotification<Replace>(_submgrPort, _state);
|
Un manejador de suscripción es algo así (de todas formas míralo en los tutoriales de MSRS):
| Code: | /// <summary>
/// Subscribe Handler. Manages subscription requests - Subscribe messages.
/// </summary>
/// <param name="subscribe"></param>
/// <returns></returns>
[ServiceHandler(ServiceHandlerBehavior.Exclusive)]
public virtual IEnumerator<ITask> SubscribeHandler(pxsonar.Subscribe subscribe)
{
SubscribeRequestType request = subscribe.Body;
LogInfo("Subscribe request from: " + request.Subscriber);
// Use the Subscription Manager to insert the new subscriber
yield return Arbiter.Choice(
SubscribeHelper(_submgrPort, request, subscribe.ResponsePort),
delegate(SuccessResult success)
{
base.SendNotification<Replace>(_submgrPort, request.Subscriber, _state);
},
delegate(Exception e)
{
LogError(null, "Subscribe failed", e);
}
);
yield break;
}
|
Por otro lado, el servicio que va a escuchar la información que mande el servicio proveedor se suscribe haciendo algo así:
| Code: | // Subscribe to ArcosCore
_arcosCorePort.Subscribe(_arcosCoreNotify);
|
Eso hace que a partir de ese momento reciba las notificaciones de actualización de estado del servicio al que se suscribe por el puerto de notificación especificado.
A lo mejor te he liado un poco con todo esto, lo mejor es que sigas paso a paso los tutoriales de servicios que se refieren a las suscripción..
Raúl Arrabales Moreno. conscious-robots.com/raul |