Realtid med minimal latens

Jag använder mig av realtidsdata (gtfs-rt/skane/VehiclePositions). Jag ser att datan uppdateras med ett intervall på 2 sekunder.
Om jag vill ha denna data med så låg latens som möjligt, så duger det ju inte att göra ett anrop var 2:e sekund, eftersom då fårr jag upp till 2 sekunders extra latens, ifall datan uppdaterades strax efter jag frågade sist.

Jag vill ju helst undvika att kontinuerligt polla med en högre frekvens bra för detta, men finns några andra alternativ?
- Finns det någon feed på att ni har uppdaterat data och jag nu kan göra ett anrop?
- Eller kan jag lita på att ni håller ett exakt 2-sekunders-tick, så att jag kan köra täta uppdateringar under någon sekund för att "synkronisera" mig på er 2-sekunders-klocka?

Niklas

Kommentarer

  • Hej Niklas,

    Varje fil innehåller en tidstämpel som beskriver när den skapades. Även last-modified HTTP-headern kan användas för att se när filen skapades. Baserat på dessa kan du göra nästa anrop 2100-2500ms senare, så att du alltid får nästa fil med 100-500ms latens.
    Jag rekommenderar att inte hämta filen exakt 2000ms senare, eftersom att filen skapas var 2a sekund, men själva processen kan ta lite längre baserat på olika faktorer. Har man marginaler undviker man att man behöver ladda ner filen på nytt, vilket skulle innebära ännu mer fördröjning.
    Jag har för mig att API:et även stödjer conditional GET requests,vilket gör att du kan få en HTTP kod 204 not modified när du skickar med en if-modified-since header.På detta sätt kan du omedelbart se om en ny fil inte än finns, och kan du hämta filen en halv sekund senare istället.

    Hälsningar,
    Bert
    Bert på Trafiklab

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.