public async Task <IGenaSubscription> Subscribe(GenaSubscriptionRequest request) { Uri address = new Uri(request.BaseAddress, request.PublisherPath); HttpRequestMessage httpRequest = new HttpRequestMessage(new HttpMethod("SUBSCRIBE"), address); httpRequest.Headers.Clear(); httpRequest.Headers.Add("HOST", address.Authority); httpRequest.Headers.Add("CONNECTION", (string)null); httpRequest.Headers.Add("NT", "upnp:event"); httpRequest.Headers.Add("TIMEOUT", "Second-" + request.Timeout); httpRequest.Headers.Add("CALLBACK", "<" + request.Callback + ">"); HttpResponseMessage response = await HttpHandler.SendAsync(httpRequest); GenaSubscription subscribtion = new GenaSubscription() { Id = response.Headers.GetValues("SID").FirstOrDefault(), Address = address }; subscriptions.Add(subscribtion); return(subscribtion); }
public async Task Unsubscribe(IGenaSubscription subscription) { GenaSubscription sub = subscription as GenaSubscription; if (sub == null) { return; } HttpRequestMessage httpRequest = new HttpRequestMessage(new HttpMethod("UNSUBSCRIBE"), sub.Address); httpRequest.Headers.Clear(); httpRequest.Headers.Add("HOST", sub.Address.Authority); httpRequest.Headers.Add("SID", subscription.Id); await HttpHandler.SendAsync(httpRequest); }