← Cloudflare Realtime / realtime / realtimekit / core
Ankety
Tento návod vysvětluje, jak pomocí Cloudflare RealtimeKit vytvářet ankety ve schůzce, hlasovat v nich a pracovat s nimi.
Úvod
K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.
console.log("Polls object:", meeting.polls); meeting.polls.items vlastnost vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.
console.log("All polls:", meeting.polls.items);K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.
console.log("Polls object:", meeting.polls); meeting.polls.items vlastnost vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.
console.log("All polls:", meeting.polls.items);Funkci anket ve schůzce můžete využít pomocí meeting.polls. Tento objekt poskytuje metody pro vytváření anket, hlasování a další akce související s anketami.
Chcete-li načíst všechny ankety vytvořené během schůzky, použijte meeting.polls.items. Vrací pole, jehož každý prvek je objekt typu com.cloudflare.realtimekit.polls.Poll.
K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.
meeting.polls.items vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.
K objektu anket schůzky lze přistupovat pomocí meeting.polls. Poskytuje metody pro vytváření anket, hlasování a další akce.
meeting.polls.items vrací pole všech anket vytvořených ve schůzce, kde každý prvek je objekt typu Poll.
Typ ankety
Poll typ je definován následovně:
interface Poll {
id: string;
question: string;
options: PollOption[];
anonymous: boolean;
hideVotes: boolean;
createdBy: string;
createdByUserId: string;
voted: string[]; // stores participant ID
}
interface PollOption {
text: string;
votes: {
id: string; // stores participant ID
name: string;
}[];
count: number;
} Poll typ je definován následovně:
interface Poll {
id: string;
question: string;
options: PollOption[];
anonymous: boolean;
hideVotes: boolean;
createdBy: string;
createdByUserId: string;
voted: string[]; // stores participant ID
}
interface PollOption {
text: string;
votes: {
id: string; // stores participant ID
name: string;
}[];
count: number;
} Poll typ představuje anketu v rámci schůzky:
class Poll(
val id: String,
val question: String,
val anonymous: Boolean,
val hideVotes: Boolean,
val createdBy: String,
val options: List<PollOption>,
val voted: List<String>,
)Každá anketa obsahuje seznam PollOption, které představují dostupné možnosti dané ankety.
Každý PollOption obsahuje seznam PollVote kde každý hlas obsahuje hlasujícího id a name.
class PollOption(
val text: String,
val votes: List<PollVote>,
val count: Int
)class PollVote(
val id: String,
val name: String
) Poll typ je definován následovně:
class Poll {
let id: String
let question: String
let anonymous: Bool
let hideVotes: Bool
let createdBy: String
let options: [PollOption]
let voted: [String]
}Typ Poll je hlavní třída pro jakoukoli anketu v RealtimeKit. Obsahuje také seznam PollOption což jsou možnosti pro danou anketu. A každý PollOption obsahuje seznam hlasů. Hlasy jsou objekty třídy PollVote který interně obsahuje id a název hlasu.
class PollOption {
let text: String
let votes: [PollVote]
let count: Int
}
class PollVote {
let id: String
let name: String
} Poll typ je definován následovně:
interface Poll {
id: string;
question: string;
options: PollOption[];
anonymous: boolean;
hideVotes: boolean;
createdBy: string;
createdByUserId: string;
voted: string[]; // stores participant ID
}
interface PollOption {
text: string;
votes: {
id: string; // stores participant ID
name: string;
}[];
count: number;
}Vytvoření ankety
Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.create() metoda přijímá následující parametry:
question(string) - Otázka anketyoptions(string[]) - Pole možností anketyanonymous(boolean) - Zda jsou hlasy anonymníhideVotes(boolean, volitelné) - Zda skrýt počty hlasů
Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní:
await meeting.polls.create(
"Are you an early bird or a night owl?",
["Early bird", "Night owl"],
true,
);Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.create() metoda přijímá následující parametry:
question(string) - Otázka anketyoptions(string[]) - Pole možností anketyanonymous(boolean) - Zda jsou hlasy anonymníhideVotes(boolean, volitelné) - Zda skrýt počty hlasů
Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní:
await meeting.polls.create(
"Are you an early bird or a night owl?",
["Early bird", "Night owl"],
true,
);Chcete-li vytvořit novou anketu, použijte create metoda dostupná v meeting.polls objekt. meeting.polls.create() funkce vyžaduje následující parametry:
| Parametr | Typ | Povinné | Popis |
|---|---|---|---|
| otázka | String |
ano | Otázka, o které se hlasuje. |
| options | List<String> |
ano | Možnosti ankety. |
| anonymní | Boolean |
ano | Pokud je hodnota true, jsou hlasy v anketě anonymní. |
| hideVotes | Boolean |
ano | Pokud je hodnota true, jsou hlasy v anketě skryté. |
Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní.
val pollsCreateError: PollsError? = meeting.polls.create(
question = "Are you an early bird or a night owl?",
options = listOf("Early bird", "Night owl"),
anonymous = true,
hideVotes = false
)Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.createPoll() metoda přijímá následující parametry:
| Parametr | Typ | Výchozí hodnota | Povinné | Popis |
|---|---|---|---|---|
| otázka | string |
- | ano | Otázka, o které se hlasuje. |
| options | string[] |
- | ano | Možnosti ankety. |
| anonymní | boolean |
- | ne | Pokud je hodnota true, jsou hlasy v anketě anonymní. |
| hideVotes | boolean |
- | ne | Pokud je hodnota true, jsou hlasy v anketě skryté. |
Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní.
let pollsCreateError: PollsError? = meeting.polls.createPoll(
question: "Are you an early bird or a night owl?",
options: ["Early bird", "Night owl"],
anonymous: true,
hideVotes: false
)Novou anketu lze vytvořit pomocí create metodu z meeting.polls objekt. meeting.polls.create() metoda přijímá následující parametry:
| Parametr | Typ | Výchozí hodnota | Povinné | Popis |
|---|---|---|---|---|
| otázka | string |
- | ano | Otázka, o které se hlasuje. |
| options | string[] |
- | ano | Možnosti ankety. |
| anonymní | boolean |
false | ne | Pokud je hodnota true, jsou hlasy v anketě anonymní. |
| hideVotes | boolean |
false | ne | Pokud je hodnota true, jsou hlasy v anketě skryté. |
Následující úryvek kódu vytváří anketu, ve které jsou hlasy anonymní.
await meeting.poll.create(
"Are you an early bird or a night owl?",
["Early bird", "Night owl"],
true,
);Hlasování v anketě
meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:
pollId(string) - ID anketyoptionIndex(number) - Index vybrané možnosti
Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce:
const poll = meeting.polls.items[0];
await meeting.polls.vote(poll.id, 0); meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:
pollId(string) - ID anketyoptionIndex(number) - Index vybrané možnosti
Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce:
const poll = meeting.polls.items[0];
await meeting.polls.vote(poll.id, 0);Chcete-li zaznamenat hlas v anketě, použijte meeting.polls.vote() metodu. Tato metoda vyžaduje následující parametry:
| Parametr | Typ | Výchozí hodnota | Povinné | Popis |
|---|---|---|---|---|
| pollMessage | Poll |
- | ano | Zpráva ankety, pro kterou se hlasuje. |
| pollOption | PollOption |
- | ano | Možnost, pro kterou se hlasuje. |
Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce.
val poll: Poll = meeting.polls.items.first()
val selectedPollOption: PollOption = poll.options.first()
val pollsError: PollsError? = meeting.polls.vote(poll.id, selectedPollOption) meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:
| Parametr | Typ | Výchozí hodnota | Povinné | Popis |
|---|---|---|---|---|
| pollMessage | Poll |
- | ano | Zpráva ankety, pro kterou se hlasuje. |
| pollOption | PollOption |
- | ano | Možnost, pro kterou se hlasuje. |
Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce.
let poll: Poll = meeting.polls.items[0]
let selectedPollOption: PollOption = poll.options[0]
meeting.poll.vote(poll, selectedPollOption) meeting.polls.vote() metodu lze použít k zaregistrování hlasu v anketě. Přijímá následující parametry:
| Parametr | Typ | Výchozí hodnota | Povinné | Popis |
|---|---|---|---|---|
| id | string |
- | ano | ID ankety, ve které se má hlasovat. |
| index | number |
- | ano | Index možnosti. |
Následující úryvek kódu hlasuje pro první možnost v první anketě vytvořené na schůzce.
const poll = meeting.polls.items[0];
await meeting.poll.vote(poll.id, 0);Další funkce ankety
Zobrazení výsledků ankety
K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:
const poll = meeting.polls.items[0];
const votes = poll.voted;votes je pole ID účastníků (meeting.participant.id).
K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:
const poll = meeting.polls.items[0];
const options = poll.options;options vrací pole objektů, kde každý objekt je typu PollOption.
K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:
const poll = meeting.polls.items[0];
const votes = poll.voted;votes je pole ID účastníků (meeting.participant.id).
K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:
const poll = meeting.polls.items[0];
const options = poll.options;options vrací pole objektů, kde každý objekt je typu PollOption.
K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:
val poll = meeting.polls.items[0]
val votes = poll.votedvotes je pole ID účastníků (meeting.participant.id).
K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:
val poll = meeting.polls.items[0]
val options = poll.optionsoptions vrací pole objektů, kde každý objekt je typu PollOption.
K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:
let poll = meeting.polls.items[0]
let votes = poll.votedvotes je pole ID účastníků (meeting.participant.id).
K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:
let poll = meeting.polls.items[0]
let options = poll.optionsoptions vrací pole objektů, kde každý objekt je typu PollOption.
K celkovému počtu hlasů v anketě lze přistupovat následujícím způsobem:
const poll = meeting.polls.items[0];
const votes = poll.voted;votes je pole ID účastníků (meeting.participant.id).
K celkovému počtu hlasů pro možnost ankety lze přistupovat následujícím způsobem:
const poll = meeting.polls.items[0];
const options = poll.options;options vrací pole objektů, kde každý objekt je typu PollOption.
Upozornění na vytvoření nebo aktualizaci ankety
Událost se vyvolá pokaždé, když meeting.polls.items je aktualizována nebo vytvořena. Naslouchání této události vám umožní získat aktualizovaný seznam anket. Objekt odpovědi obsahuje následující vlastnosti:
polls- Seznam všech anketnewPoll- Boolean proměnná, která jetruekdyž je vytvořena nová anketa
meeting.polls.on("pollsUpdate", ({ polls, newPoll }) => {
console.log("Polls updated:", polls);
console.log("Is new poll:", newPoll);
});Událost se vyvolá pokaždé, když meeting.polls.items je aktualizována nebo vytvořena. Naslouchání této události vám umožní získat aktualizovaný seznam anket. Objekt odpovědi obsahuje následující vlastnosti:
polls- Seznam všech anketnewPoll- Boolean proměnná, která jetruekdyž je vytvořena nová anketa
meeting.polls.on("pollsUpdate", ({ polls, newPoll }) => {
console.log("Polls updated:", polls);
console.log("Is new poll:", newPoll);
});Alternativně můžete pro naslouchání aktualizacím anket použít React hooks:
import { useRealtimeKitSelector } from "@cloudflare/realtimekit-react";
// useRealtimeKitSelector hook only works when `RealtimeKitProvider` is used.
const polls = useRealtimeKitSelector((m) => m.polls.items);Událost se vyvolá pokaždé, když meeting.polls.items je aktualizována nebo vytvořena. Naslouchání této události vám umožní získat aktualizovaný seznam anket. Objekt odpovědi obsahuje následující vlastnosti:
polls- Seznam všech anketnewPoll- Boolean proměnná, která jetruekdyž je vytvořena nová anketa
meeting.polls.on("pollsUpdate", ({ polls, newPoll }) => {
console.log(polls, newPoll);
});Chcete-li během schůzky dostávat aktualizace o nových anketách nebo jejich změnách, implementujte RtkPollsEventListener rozhraní. Zaregistrujte svého posluchače pomocí meeting.addPollsEventListener(rtkPollsEventListener).
onNewPoll() metoda se volá vždy, když je ve schůzce vytvořena nová anketa.
onPollUpdate() metoda se volá, když je aktualizována konkrétní anketa, například když účastníci hlasují nebo se změní podrobnosti ankety. onPollUpdates() metoda se volá při aktualizacích seznamu anket, včetně vytvoření nových anket nebo hromadné aktualizace více anket najednou. Pomocí těchto callbacků udržíte rozhraní anket synchronizované s nejnovějšími daty.
meeting.addPollsEventListener(object : RtkPollsEventListener {
override fun onNewPoll(poll: Poll) {
}
override fun onPollUpdate(poll: Poll) {
}
override fun onPollUpdates(pollItems: List<Poll>) {
}
}
)Abyste mohli přijímat nové zprávy o anketách, musíte implementovat metodu onPollUpdates() metodu z callbacku RtkPollsEventListener. K odběru těchto událostí se můžete přihlásit voláním meeting.addPollsEventListener(meetingViewModel)
extension MeetingViewModel: RtkPollsEventListener {
func onNewPoll(poll: Poll) {
// code to handle new poll
}
func onPollUpdates(pollItems: [Poll]) {
// code to handle polls and their vote updates.
}
func onPollUpdate(poll: Poll) {}
}