LapsHub Live

LapsHub Streaming Protocol

Il contratto denominato per LapsHub Live. Organizzazione → circuito → auto → sessione. Telemetria live più video di bordo a bassa latenza. Live API è il modo per costruirci sopra. Hosted Pit Wall è la UI di prima parte opzionale su questo stesso protocollo.

Per organizzazione · Design partner · Specifiche prima del runtime

Cos'è LSP

LapsHub Streaming Protocol è il linguaggio dello stream del circuito. Non è un nuovo formato binario. Team, streamer e integratori parlano LSP; Live API aggiunge sessioni, accesso allo stream e contatori.

Organization
  └── Track (subscribe: all org cars on this circuit)
        └── Car
              └── Session
                    ├── Telemetry events
                    └── Stage (onboard) → publish / watch access

Contratto

LSP dà un nome a organizzazione, circuito, auto, sessione, eventi di telemetria e stage di bordo. Sottoscrivi un circuito nella tua organizzazione. Molte auto pubblicano. Il tuo prodotto riceve quelle auto come eventi.

Non è un bus generico

Kafka o l'IoT grezzo spostano byte. Non indicano quale organizzazione, circuito, auto o sessione è live, né quando lo stage di bordo deve aprirsi. Quella mappatura è LSP.

Live API

Cosa acquisti per costruire: controllo delle sessioni, accesso allo stream e contatori di utilizzo. Pit wall, overlay, app della serie o stream restano tuoi.

Hosted Pit Wall

UI opzionale di prima parte, sullo stesso protocollo. Preferisci una schermata chiavi in mano? Stesso backend Live, percorso Hosted Pit Wall.

Integrazione dispositivi via MQTT

Connetti la tua sorgente di telemetria via MQTT. Apri una sessione in GraphQL, genera credenziali a breve durata, poi pubblica gli envelope JSON dal tuo dispositivo, dal tuo logger o dal tuo bridge.

1

Apri una sessione

Chiama createLiveSession con il carId e il trackId della tua organizzazione. Una sessione live per auto in circuito.

2

Genera credenziali MQTT

Chiama createTelemetryCredentials con role: PUBLISH. Live API restituisce endpoint, clientId, topicPublish e expiresAt.

3

Connetti e pubblica

Il vostro device si collega a mqtts://live-mqtt.lapshub.com:8883 via TLS e pubblica envelope di telemetria su topicPublish. Fino a 50 punti per messaggio.

Sorgenti supportate

Dispositivo LapsHub, RaceBox o Dragy tramite il tuo bridge, logger CAN/GPS o qualsiasi stack che esegua un client MQTT ed emetta JSON.

Formato wire

JSON su MQTT, application/json. Campi obbligatori dell'envelope: v, orgId, trackId, carId e points[] con almeno ts. Opzionali per punto: lat, lon, speedMps, headingDeg, lap e scalari channels nominati (rpm, throttle e così via).

Solo in ambito organizzazione

Le auto della tua organizzazione sui tuoi circuiti. Non è un accesso al traffico pubblico dell'app per i piloti di LapsHub.

Credenziali di sessione e pubblicazione (GraphQL)
mutation {
  createLiveSession(input: { carId: "car_42", trackId: "track_ra" }) {
    id
    status
  }
}

mutation {
  createTelemetryCredentials(
    sessionId: "sess_1"
    input: { role: PUBLISH, ttlSeconds: 3600 }
  ) {
    endpoint
    clientId
    topicPublish
    expiresAt
  }
}
Risposta delle credenziali (illustrativa)
{
  "endpoint": "mqtts://live-mqtt.lapshub.com:8883",
  "clientId": "lh_org_1_car_42_sess_1",
  "topicPublish": "live/org_1/track_ra/car_42/telemetry",
  "expiresAt": "2026-08-17T19:00:00.000Z"
}

Broker previsto: mqtts://live-mqtt.lapshub.com:8883 (Preview, non live). Le credenziali durano poco: rinnovatele prima della scadenza. L'ingest batch HTTPS è una via secondaria quando un device non può usare MQTT. Preferite MQTT per GPS ad alta frequenza e canali CAN. Schema completo: asyncapi-telemetry-v1.yaml.

Sottoscrizione al circuito

Sottoscrivi un circuito nella tua organizzazione. Le auto che pubblichi inviano eventi su quello stream di circuito in tempo reale. Genera credenziali di sottoscrizione con role: SUBSCRIBE o BOTH su createTelemetryCredentials.

I topic del circuito (illustrativi)
Subscribe (your org, one circuit):
live/{orgId}/{trackId}/+/telemetry

Publish (one car):
live/{orgId}/{trackId}/{carId}/telemetry

Live API rilascia accessi di pubblicazione e sottoscrizione a breve durata. L'HTTPS in batch resta un'alternativa secondaria quando un client di stream non è disponibile.

Esempio JSON dell'evento

Un envelope, uno o più punti. Versione schema v: 1. Elenco completo dei campi per i design partner: asyncapi-telemetry-v1.yaml.

Envelope di telemetria
{
  "v": 1,
  "orgId": "org_1",
  "trackId": "track_ra",
  "carId": "car_42",
  "sessionId": "sess_1",
  "points": [
    {
      "ts": "2026-08-17T18:00:00.000Z",
      "lat": 43.798,
      "lon": -87.992,
      "speedMps": 42.1,
      "headingDeg": 187.2,
      "lap": 3,
      "channels": { "rpm": 6120, "throttle": 0.82 }
    }
  ]
}

Stream di telemetria

I dati delle auto ad alta frequenza viaggiano su MQTT, non sull'API di controllo. I dispositivi pubblicano su un topic auto; i pit wall e gli overlay si sottoscrivono al wildcard del circuito. Vedi integrazione dispositivi per il flusso di connessione e pubblicazione.

Pubblica

Auto o logger pubblicano su live/{orgId}/{trackId}/{carId}/telemetry.

Sottoscrivi

I pit wall, gli overlay e gli stack di stream si sottoscrivono a live/{orgId}/{trackId}/+/telemetry e ricevono ogni auto dell'organizzazione su quel circuito.

Non è il piano di controllo

Non inviare punti GPS ad alta frequenza attraverso le API di sessione. Quelle chiamate aprono le sessioni e gli accessi. Lo stream trasporta i punti.

Piano di controllo

Live API è il modo in cui apri le sessioni, concedi l'accesso allo stream e alla visione, e leggi l'utilizzo. Il protocollo dice che cosa significano quelle chiamate. Gli schemi a livello wire restano in revisione con i design partner.

Sessioni

Apri e chiudi una sessione live per un'auto su un circuito della tua organizzazione.

Accesso

Accesso a breve durata per pubblicazione, sottoscrizione e visione. Apri l'accesso di visione solo mentre qualcuno sta guardando.

Utilizzo

I contatori riportano il tempo di pubblicazione, il tempo di visione e il volume di telemetria accettato.

Controllo GraphQL (non il piano dati)
mutation {
  createLiveSession(input: { carId: "car_42", trackId: "track_ra" }) {
    id
    status
  }
}
Sottoscrizione MQTT al circuito
Subscribe (your org, one circuit):
live/{orgId}/{trackId}/+/telemetry

Publish (one car):
live/{orgId}/{trackId}/{carId}/telemetry

GraphQL apre le sessioni e gli stage. MQTT trasporta i dati live delle auto. WebRTC trasporta il video di bordo. GraphQL non è il bus GPS live.

Stage video

Ripresa di bordo a bassa latenza per il tuo pubblico (obiettivo sotto i 2 secondi). Apri uno stage solo mentre qualcuno sta guardando, poi alimenta YouTube, Twitch, la TV o gli schermi sul posto dal tuo stack.

Pubblica

Avvia uno stage per l'auto/sessione e invia il video di bordo dalla telecamera.

Guarda

L'accesso di visione è a breve durata e fatturabile. Aprilo solo mentre qualcuno sta guardando.

La tua distribuzione

Gestiamo noi il backend live. Decidi tu come l'evento arriva su YouTube, Twitch, TV, sugli overlay e sugli stream interni.

Contatori

Che cosa contiamo per l'utilizzo. I prezzi del progetto pilota si concordano con i design partner.

video.publisher

Secondi-partecipante mentre chi pubblica è connesso.

video.subscriber

Secondi-partecipante mentre chi guarda resta connesso.

telemetry.message

Conteggio degli eventi di telemetria accettati o degli elementi in batch.

Specifiche design partner

Questi contratti servono per la revisione dell'architettura con i design partner. Gli endpoint di runtime non sono ancora generalmente disponibili. Le specifiche possono cambiare prima del lancio.

Vedi LSP nel tuo stack

Richiedi l'accesso design partner. Raccontaci il tuo prodotto, lo stream o il pit wall e mapperemo sessioni, telemetria e stage di bordo sulla tua roadmap.

Programma design partner. Preferite uno schermo chiavi in mano? Hosted Pit Wall. Cercate l'app per il pilota? Scarica Gratis.