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); }