INTEGRITY Dokumentace

Úložiště a vysílání

RealtimeKit Stores API umožňuje vytvářet více realtime úložišť dvojic klíč-hodnota. Uživatelé mohou odebírat změny v úložišti a dostávat aktualizace v reálném čase. Data zůstávají uložená, dokud relace je aktivní.

Vytvoření úložiště

Můžete vytvořit realtime store (změny se synchronizují s ostatními uživateli):

Parametr Typ Popis Povinné
name string Název úložiště true

Vytvoření úložiště:

const stores = useRealtimeKitSelector((m) => m.stores);
const store = stores.create('myStore');
const store = meeting.stores.create('myStore');
const store = meeting.stores.create('myStore');
val meeting = RealtimeKitMeetingBuilder.build(activity)
val store = meeting.stores.create("myStore")
let meeting = RealtimeKitiOSClientBuilder().build()
let store = meeting.stores.create(name: "myStore")

Aktualizujte Store

Ve store můžete přidávat, aktualizovat nebo mazat položky:

Parametr Typ Popis Povinné
key string Jedinečný identifikátor použitý k uložení nebo aktualizaci hodnoty ve store Ano
value StoreValue Hodnota, kterou lze uložit pod daným klíčem Ano
type StoreValue = string | number | object | array;
const stores = useRealtimeKitSelector((m) => m.stores.stores);
const store = stores.get("myStore");

await store.set("user", { name: "John Doe" });

await store.update("user", { age: 34 }); // { name: 'John Doe', age: 34 }

await store.delete("user");
type StoreValue = string | number | object | array;
const { stores } = meeting.stores;
const store = stores.get("myStore");

await store.set("user", { name: "John Doe" });

await store.update("user", { age: 34 }); // { name: 'John Doe', age: 34 }

await store.delete("user");
type StoreValue = string | number | object | array;
const { stores } = meeting.stores;
const store = stores.get("myStore");

await store.set("user", { name: "John Doe" });

await store.update("user", { age: 34 }); // { name: 'John Doe', age: 34 }

await store.delete("user");
val store = meeting.stores.get("myStore")

store.set("user", mapOf("name" to "John Doe"))
let store = meeting.stores.get(name: "myStore")
store.set("user", ["name": "John Doe"])

Přihlaste se k odběru Store

Ke klíči ve store můžete připojit posluchače událostí, které se spustí při změně hodnoty.

const stores = useRealtimeKitSelector((m) => m.stores.stores);
const store = stores.get('myStore');
store.subscribe('key', (data) => {
    console.log(data);
});

// subscribe to all keys of a store
store.subscribe('\*', (data) => {
console.log(data);
});

store.unsubscribe('key');
const { stores } = meeting.stores;
const store = stores.get('myStore');
store.subscribe('key', (data) => {
    console.log(data);
});

// subscribe to all keys of a store
store.subscribe('\*', (data) => {
console.log(data);
});

store.unsubscribe('key');
const { stores } = meeting.stores;
const store = stores.get('myStore');
store.subscribe('key', (data) => {
    console.log(data);
});

// subscribe to all keys of a store
store.subscribe('\*', (data) => {
console.log(data);
});

store.unsubscribe('key');
val store = meeting.stores.create("myStore")
val keyChangeCallback = { key: String, value: Any? ->
  println(value)
}
store.subscribe("key", keyChangeCallback)

// Subscribe to all keys
store.subscribe(RtkStore.WILDCARD_KEY) { key, value ->
  println(value)
}

store.unsubscribe("key", keyChangeCallback)
let store = meeting.stores.create(name: "myStore")
let keyChangeCallback: ((String, (Any?)) -> Void) = { key, value in
    print(value ?? "null")
}
store.subscribe(key: "key", onChange: keyChangeCallback)

// Subscribe to all keys
store.subscribe(key: RtkStore.Companion().WILDCARD_KEY) { key, value in
    print(value ?? "null")
}

store.unsubscribe(key: "key", onChange: keyChangeCallback)

Načtení dat úložiště

Data uložená v úložišti můžete načíst takto:

const stores = useRealtimeKitSelector((m) => m.stores.stores);
const store = stores.get('myStore');

// fetch value for a specific key
const data = store.get('key');

// fetch all the data in the store
const data = store.getAll();
const { stores } = meeting.stores;
const store = stores.get('myStore');

// fetch value for a specific key
const data = store.get('key');

// fetch all the data in the store
const data = store.getAll();
const { stores } = meeting.stores;
const store = stores.get('myStore');

// fetch value for a specific key
const data = store.get('key');

// fetch all the data in the store
const data = store.getAll();
val store = meeting.stores.create("myStore")

// fetch value for a specific key
val data = store.get("key")

// fetch all the data in the store
val data = store.getAll()
let store = meeting.stores.create(name: "myStore")

// fetch value for a specific key
store.get(key: "key")

// fetch all the data in the store
store.getAll()