Realtime Guide¶
RealtimeClient manages websocket lifecycle and channels.
Workflow¶
connect()- create channel via
channel("topic") - register callbacks (
onPostgresChange,onPresence,onBroadcast) subscribe()unsubscribe()anddisconnect()on cleanup
Basic subscription example¶
realtime.connect()
val sub = realtime.channel("todos")
.onPostgresChange(table = "todos", event = PostgresChangeEvent.INSERT) { record ->
println("Inserted: $record")
}
.onBroadcast("cursor") { payload ->
println("Broadcast payload: $payload")
}
.subscribe()
Presence + broadcast example¶
sub.track(buildJsonObject {
put("userId", "u1")
put("name", "Ranbir")
})
sub.broadcast(
event = "cursor",
payload = buildJsonObject {
put("x", 120)
put("y", 340)
},
)
Connection model¶
Observe connectionState:
DisconnectedConnectingConnectedReconnectingFailed
Reconnect uses backoff and re-joins active channels.