public static void Start(ServerBindingContext ctx)
        {
            if (m_isStarted)
            {
                throw new InvalidOperationException();
            }

            m_isStarted = true;

            // Start Http service host
            m_httpServiceHost.Start(ctx);
            System.Ext.Console.Write("Http service host started...");

            // Start Udp service host
            WsUdpServiceHost.Instance.Start(ctx);
            System.Ext.Console.Write("Udp service host started...");

            // Send hello greeting
            if (m_discoGreeting != null)
            {
                m_discoGreeting.SendGreetingMessage(true);
            }

            // Start the event subscription manager
            m_eventQManager = new DpwsWseEventSinkQMgr();
            m_eventQManager.Start();
            System.Ext.Console.Write("Event subscription manager started...");
        }
示例#2
0
        /// <summary>
        /// Method used to Start the stack transport services.
        /// </summary>
        /// <remarks>
        /// The Start Method initialises device specific services and calls the stack services to start
        /// the Http and UDP transport services. It also creates and starts an instance of the
        /// Event Queue manager service that manages event subscription expirations.
        /// </remarks>
        public static void Start()
        {
            isStarted = true;

            // Initialize the device collections
            System.Ext.Console.Write("");
            System.Ext.Console.Write("Initializing device.....");
            Init();

            // Start Udp service host
            m_udpServiceHost.Start();
            System.Ext.Console.Write("Udp service host started...");

            // Start Http service host
            m_httpServiceHost.Start();
            System.Ext.Console.Write("Http service host started...");

            // Start the event subscription manager
            m_eventQManager = new DpwsWseEventSinkQMgr();
            m_eventQManager.Start();
            System.Ext.Console.Write("Event subscription manager started...");

            // Send hello greeting
            DpwsDiscoGreeting.SendGreetingMessage(true);
        }
示例#3
0
        protected void StartEventListeners()
        {
            // Add callbacks implemented by this client
            m_callbackServiceEndpoints.Add(this);

            // Start the Http service host
            m_httpServiceHost = new WsHttpServiceHost(m_localBinding, m_callbackServiceEndpoints);
            m_httpServiceHost.MaxThreadCount = 5;
            m_httpServiceHost.Start(new ServerBindingContext(m_version));
            System.Ext.Console.Write("Http service host started...");
        }
示例#4
0
        private void Init()
        {
            m_discoClient = new DpwsDiscoveryClient(this);

            // Set the initial endpoint address
            m_endpointAddress = "urn:uuid:" + Guid.NewGuid();

            // Add the Hello and Bye discovery disco services
            ClientDiscoveryService = new DpwsDiscoClientService(this);
            m_discoServiceEndpoints.Add(ClientDiscoveryService);

            // Start a Udp discovery service host
            m_udpSeviceHost = new WsUdpServiceHost(m_discoServiceEndpoints);
            if (!m_udpSeviceHost.IsRunning)
            {
                m_udpSeviceHost.IgnoreRequestFromThisIP = m_ignoreRequestFromThisIP;
                m_udpSeviceHost.MaxThreadCount          = 5;
                m_udpSeviceHost.Start();
                System.Ext.Console.Write("Udp service host started...");
            }
            else
            {
                m_udpSeviceHost = null;
            }

            // Add eventing SubscriptionEnd ServiceOperations. By default Subscription End call back
            // to this client
            ServiceOperations.Add(new WsServiceOperation(WsWellKnownUri.WseNamespaceUri, "SubscriptionEnd"));

            // Add callbacks implemented by this client
            m_callbackServiceEndpoints.Add(this);

            // Start the Http service host
            m_httpServiceHost = new WsHttpServiceHost(m_port, m_callbackServiceEndpoints);
            m_httpServiceHost.MaxThreadCount = m_callbackServiceEndpoints.Count;
            m_httpServiceHost.Start();
            System.Ext.Console.Write("Http service host started...");
        }
示例#5
0
        /// <summary>
        /// Creates an instance of a DpwsClient class with a specified eventing callback port number.
        /// </summary>
        public DpwsClient(Binding localBinding, ProtocolVersion v)
        {
            m_threadLock               = new object();
            m_eventClient              = new DpwsEventingClient(v);
            m_mexClient                = new DpwsMexClient(v);
            m_eventCallbacks           = new WsServiceOperations();
            m_callbackServiceEndpoints = new WsServiceEndpoints();
            m_blockingCall             = true;
            m_ignoreRequestFromThisIP  = true;
            m_localBinding             = localBinding;
            m_version = v;

            m_discoClient = new DpwsDiscoveryClient(this, v);

            // Add the Hello and Bye discovery disco services
            ClientDiscoveryService = new DpwsDiscoClientService(this, v);

            // Start a Udp discovery service host
            WsUdpServiceHost.Instance.AddServiceEndpoint(ClientDiscoveryService);
            WsUdpServiceHost.Instance.IgnoreRequestFromThisIP = m_ignoreRequestFromThisIP;
            WsUdpServiceHost.Instance.MaxThreadCount          = 5;
            WsUdpServiceHost.Instance.Start(new ServerBindingContext(v));

            // Add eventing SubscriptionEnd ServiceOperations. By default Subscription End call back
            // to this client
            ServiceOperations.Add(new WsServiceOperation(WsWellKnownUri.WseNamespaceUri, "SubscriptionEnd"));

            // Add callbacks implemented by this client
            m_callbackServiceEndpoints.Add(this);

            // Start the Http service host
            m_httpServiceHost = new WsHttpServiceHost(m_localBinding, m_callbackServiceEndpoints);
            m_httpServiceHost.MaxThreadCount = m_callbackServiceEndpoints.Count;
            m_httpServiceHost.Start(new ServerBindingContext(v));
            System.Ext.Console.Write("Http service host started...");
        }