Difference between revisions of "Java Examples"

From Open Rail Data Wiki
Jump to navigation Jump to search
m (Added categories)
Line 3: Line 3:
 
This code requires the [http://www.germane-software.com/software/Java/Gozirra/ Gozirra Stomp library].
 
This code requires the [http://www.germane-software.com/software/Java/Gozirra/ Gozirra Stomp library].
  
<code>
+
<pre>
  private static void go() throws Exception
+
import net.ser1.stomp.Client;
    {
+
import net.ser1.stomp.Listener;
        System.out.println("Connecting");
+
 
        final Client c = new Client(Constants.SERVER, Constants.PORT, Constants.USERNAME, Constants.PASSWORD);
+
/**
        System.out.println("Connected");
+
  * Example client that connects to the Network Rail ActiveMQ
        System.out.println("Subscribing");
+
* and subscribes a listener to receive real-time messages
        for (final String topic : Constants.TOPICS)
+
*
        {
+
* @author Martin.Swanson@blackkitetechnology.com
            System.out.println(" " + topic);
+
*/
            c.subscribe("/topic/" + topic,
+
public class MyClient {
                    new Listener()
+
 
                    {
+
//Network Rail ActiveMQ server
                        public void message(Map map, String s)
+
private static final String SERVER = "datafeeds.networkrail.co.uk";
                        {
+
                            processMessage(map, s);
+
// Server port for STOMP clients
                        }
+
private static final int PORT = 61618;
                    });
+
        }
+
// Your account username, typically an email address
        System.out.println("done subscribing");
+
private static final String USERNAME = "yourUserName";
    }
+
</code>
+
// Your account password
 +
private static final String PASSWORD = "yourPassword";
 +
 +
// Example topic (this one is for Southern Train Movements)
 +
private static final String TOPIC = "/topic/TRAIN_MVT_ALL_TOC";
 +
 +
public static void main(String[] args) throws Exception {
 +
new MyClient().go();
 +
}
 +
 +
/*
 +
* Connect to a single topic and subscribe a listener
 +
* @throws Exception Too lazy to implement exception handling....
 +
*/
 +
private void go() throws Exception {
 +
System.out.println("| Connecting...");
 +
Client client = new Client(SERVER, PORT, USERNAME, PASSWORD);
 +
if (client.isConnected()) {
 +
System.out.println("| Connected to " + SERVER + ":" + PORT);
 +
} else {
 +
System.out.println("| Could not connect");
 +
return;
 +
}
 +
System.out.println("| Subscribing...");
 +
Listener listener = new MyListener();
 +
client.subscribe(TOPIC , listener);
 +
System.out.println("| Subscribed to " + TOPIC);
 +
System.out.println("| Waiting for message...");
 +
}
 +
}
 +
</pre>
 +
 
 +
<pre>
 +
import net.ser1.stomp.Listener;
 +
import java.util.Map;
 +
 +
/**
 +
* Example listener process that receives messages
 +
* in JSON format from the Network Rail ActiveMQ
 +
*
 +
* @author Martin.Swanson@blackkitetechnology.com
 +
*/
 +
public class MyListener implements Listener {
 +
   
 +
@Override
 +
public void message(Map header, String body) {
 +
System.out.println("| Got header: " + header);
 +
System.out.println("| Got body: " + body);
 +
}
 +
}
 +
</pre>
  
 
{{Navtable-DataFeeds}}
 
{{Navtable-DataFeeds}}

Revision as of 10:36, 26 April 2014

Gorizza Stomp library

This code requires the Gozirra Stomp library.

import net.ser1.stomp.Client;
import net.ser1.stomp.Listener;

/**
 * Example client that connects to the Network Rail ActiveMQ
 * and subscribes a listener to receive real-time messages
 * 
 * @author Martin.Swanson@blackkitetechnology.com
 */
public class MyClient {

	//Network Rail ActiveMQ server
	private static final String SERVER = "datafeeds.networkrail.co.uk";
	
	// Server port for STOMP clients
	private static final int PORT = 61618;
	
	// Your account username, typically an email address
	private static final String USERNAME = "yourUserName";
	
	// Your account password
	private static final String PASSWORD = "yourPassword";
	
	// Example topic (this one is for Southern Train Movements)
	private static final String TOPIC = "/topic/TRAIN_MVT_ALL_TOC"; 
	
	public static void main(String[] args) throws Exception {
		new MyClient().go();
	}
	
	/*
	 * Connect to a single topic and subscribe a listener
	 * @throws Exception Too lazy to implement exception handling....
	 */
	private void go() throws Exception {
		System.out.println("| Connecting...");
		Client client = new Client(SERVER, PORT, USERNAME, PASSWORD);
		if (client.isConnected()) {
			System.out.println("| Connected to " + SERVER + ":" + PORT);
		} else {
			System.out.println("| Could not connect");
			return;
		}
		System.out.println("| Subscribing...");
		Listener listener = new MyListener();
		client.subscribe(TOPIC , listener);
		System.out.println("| Subscribed to " + TOPIC);
		System.out.println("| Waiting for message...");
	}	
}
import net.ser1.stomp.Listener;
import java.util.Map;
 
/**
 * Example listener process that receives messages 
 * in JSON format from the Network Rail ActiveMQ
 * 
 * @author Martin.Swanson@blackkitetechnology.com
 */
public class MyListener implements Listener {
    
	@Override
	public void message(Map header, String body) {
		System.out.println("| Got header: " + header);
		System.out.println("| Got body: " + body);
	}
}


Network Rail Open Data Feeds
Data Feeds About the Feeds Account States Durable Subscriptions Example Code ( PHP / C# / Java / Ruby / Node.js) • Advanced UsesFAQ Release Notes
RTPPM RTPPM Feed
Train Movements Train Movements Feed Train Activation Train Cancellation Train Movement Train Reinstatement Change of Origin Change of Identity Change of Location TSPEED Field Planned Cancellations Cancellation Codes
TD TD Feed C-Class Messages S-Class Messages Train Describers TD Berths
VSTP VSTP Feed
TSR TSR Feed Route Codes
SCHEDULE SCHEDULE Feed Schedule and Location Records Association Records CIF Codes How Scheduling Works Allowances
Reference Data Reference Data Feed TOC Codes CIF Codes Delay Attribution Codes Identifying Locations (STANOX, TIPLOC, NLC and 3-Alpha Codes) STANOX Geographical Areas Train Planning data