Low-latency, server-streamed updates for fleets and trailers. Authenticate once, then read a continuous stream of LiveUpdateResponse messages—regular data updates plus automatic heartbeat frames every 60 seconds to keep connections healthy.
Download the proto or explore related REST docs.
The same proto is used by server and clients; include it in your build to generate client code or load at runtime.
livefeed.proto.Authorization: Bearer <JWT>.
Subscribe and read messages;
ignore heartbeat frames where
is_heartbeat = true.
// Example (C# gRPC client) var channel = GrpcChannel.ForAddress("https://<host>"); var client = new LiveFeed.LiveFeedClient(channel); using var headers = new Metadata { { "authorization", $"Bearer {jwt}" } }; using var call = client.Subscribe(new SubscribeRequest(), headers); await foreach (var resp in call.ResponseStream.ReadAllAsync()) { // Heartbeats arrive every ~60s with is_heartbeat = true and no payload. if (resp.IsHeartbeat) continue; var update = resp.LiveUpdate; if (update == null) continue; // Handle your update... var trailer = update.Trailer; var ts = update.Ts; // UTC }
Send your JWT once with the Subscribe call. The server validates the token up front and
enforces your entitlements for the lifetime of the stream—no per-message auth.
authorization: Bearer <JWT>
Subscribe request.
443.authorization metadata.Subscribe. The server validates entitlements and starts streaming LiveUpdateResponse messages.is_heartbeat = true, live_update = null) to keep the stream alive.
Clients do not need to respond; simply ignore these frames and keep reading.
LiveUpdateResponse with is_heartbeat = true and live_update = null.Tip: Track your own “last data update time” metric client-side if you want to detect long periods without non-heartbeat data.
message LiveUpdateResponse {
bool is_heartbeat = 1; // Heartbeat frame
optional LiveUpdate live_update = 2; // Null when heartbeat = true
}
See the full livefeed.proto below for message details.
The livefeed.proto defines the LiveFeed.Subscribe RPC and all related messages.
Use it to generate strongly-typed clients in your language of choice.
LiveFeedSubscribe(SubscribeRequest) returns (stream LiveUpdateResponse)LiveUpdateResponse, LiveUpdate, Trailer, Telemetry, StatusSame proto for server and clients; include it in your build to generate client code or load at runtime.