Kaikki tietolajit MQTT:n lävitse

65 views
Skip to first unread message

Solita / Jaakko

unread,
May 22, 2018, 4:44:57 AM5/22/18
to rata.digitraffic.fi
Terve

Tahdomme julkaista kaikki tiedot MQTT:n lävitse, joka mahdollistaa siis tiedon kuuntelemisen esimerkiksi WebSockettien kautta aktiivisen REST-pollauksen sijasta.

Nykyinen toteutus (vanha STOMP-teknologia) on tarkoitus poistaa käytöstä pitkällä aikavälillä, koska se on huonosti tuettu asiakaspäässä ja raskas palvelinpuolella. Lisäksi emme halua ylläpitää kahta WebSocket-teknologiaa.

Alla ehdotelma millaiset MQTT-topikit tulisivat olemaan:

Tieto julkaistaan MQTT:lle aina kun se muuttuu millä tahansa tavalla (eli käytännössä kun tiedon "version"-attribuutti kasvaa).

Löydättekö topikeista parannettavaa? Kaipaatteko lisää topic-osia? Onko teillä tarvetta esimerkiksi "laskettuihin" topic-osiin, kuten vaikkapa junan seuraava toteutumaton liikennepaikka?

Yt. Jaakko / Solita

Pasi Salenius

unread,
May 22, 2018, 5:20:28 AM5/22/18
to Solita / Jaakko, rata.digitraffic.fi
Hei,

Pystynkö tuossa ehdotetussa formaatissa tilaamaan tietyn <type> tyypin kaikkien junien sijainnit train-locations/ topicin avulla? Tuleeko vastaanotettujen /train-locations viestien topiceissa <type> kenttä, vai pitääkö käyttää esim. train-tracking/ topicia, jotta saa enemmän tietoja? Haluan siis näyttää junien sijainnit kartalla.

Tuleeko payloadien sisältöön samalla muutoksia? Toivoisin edelleen muutamia lisätietoja kyseisestä junasta, kuten linjan nimen (joka näkyy matkustajalle) ja junan tyypin, siis ellei näitä löydä päivitysten topicin sisältä.

Tietysti myös GTFS-muotoinen routeId olisi kiva olla mukana, mutta ymmärrän jos tämä ei nyt mahdollista.

Pasi


---

Pasi Salenius

Fresh Bits
twitter: @pasisalenius

--
Sait tämän viestin, koska olet tilannut seuraavan Google-ryhmän: rata.digitraffic.fi.
Jos haluat peruuttaa tämän ryhmän tilauksen ja sen sähköpostiviestien vastaanottamisen, lähetä sähköpostia osoitteeseen rata_digitraffic_fi+unsub...@googlegroups.com.
Käy tässä ryhmässä osoitteessa https://groups.google.com/group/rata_digitraffic_fi.
Jos haluat tarkastella tätä keskustelua verkossa, siirry osoitteeseen https://groups.google.com/d/msgid/rata_digitraffic_fi/02894cf5-da3c-4344-ba2d-6fb63ceac065%40googlegroups.com.
Lisää vaihtoehtoja on osoitteessa https://groups.google.com/d/optout.

Solita / Jaakko

unread,
May 22, 2018, 5:46:30 AM5/22/18
to rata.digitraffic.fi
Tietosisältö MQTT:n ja REST-pyyntöjen kanssa on tarkoitus olla täysin sama. Eli ehdotelmassa train-locations -vastauksessa ei tulisi mukana junan tyyppiä ja train-locations -tilauksessa ei voisi käyttää junan tyyppiä.

Ymmärrän tarpeesi saada junatyyppi kartalle näkyviin. Voisiko sen hoitaa siten, kun saat esimerkiksi train-location -viestin junalle 1 / 2018-01-01, haet junan tyypin itse REST-rajapinnasta ja kakukat sen esimerkiksi 24 tunnin ajaksi. Saat kyselyistä kevyet GraphQL:n avulla. Lisäksi voit GraphQL:llä kysyä usean junan tyypin kerralla: https://rata.digitraffic.fi/api/v1/graphql/graphiql?query=%7B%0A%20%20viewer%20%7B%0A%20%20%20%20juna_1%3A%20getTrainByTrainNumberAndDepartureDateUsingGET(train_number%3A%20%221%22%2C%20departure_date%3A%20%222018-01-01%22)%20%7B%0A%20%20%20%20%20%20trainType%0A%20%20%20%20%20%20trainNumber%0A%20%20%20%20%20%20departureDate%0A%20%20%20%20%7D%0A%20%20%20%20juna_2%3A%20getTrainByTrainNumberAndDepartureDateUsingGET(train_number%3A%20%223%22%2C%20departure_date%3A%20%222018-01-01%22)%20%7B%0A%20%20%20%20%20%20trainType%0A%20%20%20%20%20%20trainNumber%0A%20%20%20%20%20%20departureDate%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A

Näin train-location -vastaukset pysyvät pienenä ja saat muutamalla REST-kutsulla haluamasi tiedot vaikka kuuntelisitkin suuria määriä junia.

Tero Laakso

unread,
Jun 29, 2018, 12:49:29 PM6/29/18
to rata.digitraffic.fi
Stompissa on olemassa tämä: https://rata.digitraffic.fi/#liikennepaikan-tiedot-websocket

Toivottavasti vastaava tulee myös MQTT:hen.

T. Tero
Reply all
Reply to author
Forward
0 new messages