Skip to main content
Version: 2.0.x

RealtimeStore – iOS

The RealtimeStore, a property of the Meeting class, allows you to set, get, and listen to value changes for specific keys shared across all participants in a meeting.

It provides a simple key–value storage system that stays synchronized in real time among all connected participants.


Methods​

set()​

The set() method is used to store or update data in the Realtime Store. If a key already exists, it will be overwritten with the new value. Passing nil as the value deletes the key.

Parameters​

  • key (String) – The unique key under which the data will be stored.
  • value (String?) – The value to be stored. Pass nil to delete the key.

Throws​

  • An error if:
    • Key is missing or not of type String.
    • Payload size exceeds 1 KB per key.
    • Session exceeds the 100-key limit.
    • Request fails due to network or internal issues.

Example​

let REALTIME_STORE_KEY = "Blocked_Students"
Task {
do {
try await meeting.realtimeStore.set(key: REALTIME_STORE_KEY, value: "[Deep, Lily]")
print("Data set successfully!")
} catch {
print("Failed to set data: \(error.localizedDescription)")
}
}

get()​

The get() method retrieves the current value associated with a given key from the Realtime Store.

Parameters​

  • key (String) – The key whose value you want to retrieve.

Returns​

  • String? — The stored value, or nil if the key does not exist.

Throws​

  • An error if:
    • Key is missing or not of type String.
    • Request fails due to network or internal issues.

Example​

let REALTIME_STORE_KEY = "Blocked_Students"
Task {
do {
let value = try await meeting.realtimeStore.get(key: REALTIME_STORE_KEY)
let displayValue = value ?? "nil (key not found)"
print("Current value: \(displayValue)")
} catch {
print("Failed to get data: \(error.localizedDescription)")
}
}

observe()​

The observe() method subscribes to real-time updates for a given key. When the value of that key changes, the delegate method on your listener is triggered automatically for all participants.

Parameters​

  • key (String) – The key to observe for changes.
  • forListener (RealtimeStoreListener) – An object that conforms to the RealtimeStoreListener protocol.

Throws​

  • An error if the observer could not be set up.

Example​

First, conform to the RealtimeStoreListener protocol:

extension MeetingViewController: RealtimeStoreListener {
func onValueChanged(key: String, value: String?, updatedBy: String) {
print("RealtimeStore Value Changed - Key: \(key), Value: \(value ?? "nil"), UpdatedBy: \(updatedBy)")
}
}

Then, start observing:

let REALTIME_STORE_KEY = "Blocked_Students"
Task {
do {
try await meeting.realtimeStore.observe(key: REALTIME_STORE_KEY, forListener: self)
print("Started observing key successfully!")
} catch {
print("Failed to observe key: \(error.localizedDescription)")
}
}

stopObserving()​

The stopObserving() method stops receiving updates for a previously observed key for a specific listener.

Parameters​

  • key (String) – The key to stop observing.
  • forListener (RealtimeStoreListener) – The listener to remove.

Throws​

  • An error if it fails to stop observing.

Example​

let REALTIME_STORE_KEY = "Blocked_Students"
Task {
do {
try await meeting.realtimeStore.stopObserving(key: REALTIME_STORE_KEY, forListener: self)
print("Stopped observing successfully!")
} catch {
print("Failed to stop observing: \(error.localizedDescription)")
}
}

Got a Question? Ask us on discord