Java Examples: Difference between revisions
EvelynSnow (talk | contribs) datafeeds.networkrail.co.uk→publicdatafeeds.networkrail.co.uk |
|||
Line 21: | Line 21: | ||
//Network Rail ActiveMQ server | //Network Rail ActiveMQ server | ||
private static final String SERVER = " | private static final String SERVER = "publicdatafeeds.networkrail.co.uk"; | ||
// Server port for STOMP clients | // Server port for STOMP clients |
Revision as of 11:57, 25 February 2023
Gorizza Stomp library
This code will connect to the TRAIN_MVT_ALL_TOC topic and display all messages. It requires the Gozirra Stomp library.
N.B.
- You must ensure your National Rail topic subscription is consistent with the TOPIC variable
- You may receive a compiler warning relating to the declaration of the Map variable in the MyListener class. This cannot be removed without a change to the Gorizza library, but does not affect the compilation or functionality.
- The code has been successfully built using the following environment: Eclipse Luna SR1 (4.4.1), java 1.7.0_71, gorizza-0.4.1.jar
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 = "publicdatafeeds.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 • TIPLOC Records • 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 (BPLAN) |