Пример #1
0
        private void SubscribeConnect(IAsyncResult aAsync)
        {
            Trace.WriteLine(Trace.kUpnp, "Subscribe        End Connect");

            try
            {
                iRequest.EndConnect(aAsync);

                // The event URI might also be required to include the URI fragment
                Upnp.WriteMethodSubscribe(iWriter, iEventUri.PathAndQuery);
                Upnp.WriteHost(iWriter, iEventUri.Host + ":" + iEventUri.Port.ToString());
                Upnp.WriteCallback(iWriter, Server.Uri);
                Upnp.WriteNotificationType(iWriter);
                Upnp.WriteTimeout(iWriter, kSubscriptionTimeout);

                iWriter.WriteFlush();

                Trace.WriteLine(Trace.kUpnp, "Subscribe        Begin Wait For Data");

                iRequest.BeginWaitForData(SubscribeWaitForData);
            }
            catch (Exception ex)
            {
                HandleSubscriptionException("SubscribeConnect", ex);
            }
        }
Пример #2
0
        private void RenewConnect(IAsyncResult aAsync)
        {
            try
            {
                iRequest.EndConnect(aAsync);

                iMutex.WaitOne();

                string sid = iSubscriptionId;

                iMutex.ReleaseMutex();

                if (sid != null)
                {
                    Upnp.WriteMethodSubscribe(iWriter, iEventUri.AbsolutePath);
                    Upnp.WriteHost(iWriter, iEventUri.Host + ":" + iEventUri.Port.ToString());
                    Upnp.WriteSid(iWriter, iSubscriptionId);
                    Upnp.WriteTimeout(iWriter, kSubscriptionTimeout);

                    iWriter.WriteFlush();

                    iRequest.BeginWaitForData(RenewWaitForData);
                }
                else
                {
                    iRequest.Close();
                    iSubscribing        = false;
                    iPendingSubscribe   = false;
                    iUnsubscribing      = false;
                    iPendingUnsubscribe = false;
                    iSubscriptionId     = null;
                }
            }
            catch (Exception ex)
            {
                HandleSubscriptionException("RenewConnect", ex);
            }
        }