示例#1
0
        public static void Subscribe()
        {
            // Subscribe examples showing use of Raw XML Client vs the Message Contract based Client.
            // Regardless of client, the service is unafected.
            if (false)
            {
                var reader  = new StringReader("<wse:Subscribe xmlns:wse='http://schemas.xmlsoap.org/ws/2004/08/eventing'><wse:Delivery><wse:NotifyTo><Address xmlns='http://schemas.xmlsoap.org/ws/2004/08/addressing'>" + EventSinkUri + "</Address></wse:NotifyTo></wse:Delivery></wse:Subscribe>");
                var content = XmlReader.Create(reader);
                var request = Message.CreateMessage(MessageVersion.Soap11, Constants.WsEventing.Actions.Subscribe, content);
                var channel = ChannelFactory <IEventSourceRaw> .CreateChannel(new BasicHttpBinding(), new EndpointAddress("http://localhost:8080/eventsource"));

                var response = channel.Subscribe(request);
                var xml      = response.GetReaderAtBodyContents().ReadOuterXml();
                if (response.IsFault)
                {
                    throw new Exception(xml);
                }
            }
            else
            {
                var request = new SubscribeRequestMessage(EventSinkUri);
                var channel = ChannelFactory <IEventSource> .CreateChannel(new BasicHttpBinding(), new EndpointAddress("http://localhost:8080/eventsource"));

                channel.Subscribe(request);
            }

            Console.WriteLine("Event subscribed!");
        }
        public async Task Subscribe(string id, string hostName)
        {
            var request = new SubscribeRequestMessage
            {
                ServerId   = id,
                ServerHost = hostName
            };

            await client.SubscribeServiceAsync(request);
        }
示例#3
0
        public static SubscriptionManager Subscribe()
        {
            var request = new SubscribeRequestMessage(EventSinkUri);
            var channel = ChannelFactory <IEventSource> .CreateChannel(new BasicHttpBinding(), new EndpointAddress("http://*****:*****@ {2}", id, expirationDate, uri);

            return(response.Body.SubscriptionManager);
        }
示例#4
0
        public SubscribeResponseMessage Subscribe(SubscribeRequestMessage request)
        {
            var deliverTo = request.Body.Delivery.NotifyTo.ToEndpointAddress().Uri;

            Subscribers.Add(deliverTo);

            Console.WriteLine("\tSubscription request for " + deliverTo);

            // We're not going to run an actual Subscription Manager endpoint NOR
            //  going to support identification of specific subscribers (via the
            //  wse:Identifier header element) in this example hence the use of
            //  http://tempuri endpoint address.
            var response = new SubscribeResponseMessage(new SubscribeResponseMessageBody(new SubscriptionManager(new Uri("http://tempuri")), new Expires(DateTime.MaxValue)));

            return(response);
        }