C-Sharp: Difference between revisions

From Open Rail Data Wiki
Gavco98uk (talk | contribs)
No edit summary
No edit summary
Line 1: Line 1:
<code>
==Apache NMS==
 
This code will connect to the TRAIN_MVT_ALL_TOC topic and display all messages.  For more details on this client, see [http://gavincoates.com/c-activemq-stomp Gavin's blog].
 
<pre>
  using System;
  using System;
  using System.Collections.Generic;
  using System.Collections.Generic;
Line 52: Line 56:
     }
     }
  }
  }
</code>
</pre>
 
For a full explanation of the code and how to use it, please see [http://gavincoates.com/c-activemq-stomp Gavins blog]. This code will connect to the Train Movements (All) data feed, and display the messages as they are displayed.

Revision as of 21:01, 31 July 2012

Apache NMS

This code will connect to the TRAIN_MVT_ALL_TOC topic and display all messages. For more details on this client, see Gavin's blog.

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.IO;
 using Apache.NMS;

 namespace ApacheNMS
 {
    class Program
    {
        static void Main(string[] args)
        {
            IConnectionFactory factory = new NMSConnectionFactory(new Uri("stomp:tcp://datafeeds.networkrail.com:61618"));

            IConnection connection = factory.CreateConnection("username", "password");
            ISession session = connection.CreateSession();

            IDestination destination = session.GetDestination("topic://" + "TRAIN_MVT_ALL_TOC");
            IMessageConsumer consumer = session.CreateConsumer(destination);


            connection.Start();
            consumer.Listener += new MessageListener(OnMessage);
            Console.WriteLine("Consumer started, waiting for messages... (Press ENTER to stop.)");

            Console.ReadLine();
            connection.Close();
        }

        private static void OnMessage(IMessage message)
        {
            try
            {
                Console.WriteLine("Median-Server (.NET): Message received");

                ITextMessage msg = (ITextMessage)message;
                message.Acknowledge();

                Console.WriteLine(msg.Text);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("---");
                Console.WriteLine(ex.InnerException);
                Console.WriteLine("---");
                Console.WriteLine(ex.InnerException.Message);
            }
        }
    }
 }