Difference between revisions of "Java Examples"
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]. | ||
− | < | + | <pre> |
− | private static void go() throws Exception | + | 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..."); | ||
+ | } | ||
+ | } | ||
+ | </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 Uses • FAQ • 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 |