Esempio n. 1
0
        protected async Task <EventSubscriber <TEvent> > SubscribeEvent <TEvent>(string endpoint)
        {
            WapEndPoint ep = WapEndPoint.Parse(Endpoint, endpoint);

            await CallControlMethod <RegisterEvent, Empty>("events.subscribe", new RegisterEvent()
            {
                EndPoint    = ep.ToString(),
                PayloadType = typeof(TEvent).GetPayloadTypeName()
            });

            var subscr = new EventSubscriber <TEvent>(ep);
            var hdl    = new Action <ReceivedWapMessage>(msg =>
            {
                WapMessage <TEvent> wm = WapMessage <TEvent> .FromReceivedMessage(msg);
                subscr.PassData(wm.Payload);
            });

            _eventHandlers.Add(subscr, hdl);

            return(subscr);
        }