Quiz Websocket
Users can join the quiz competition as spectator or participant (after enrolling) by connecting to the websocket.
import { QuizWebSocketHandler, createClientAPI } from "wits-client"
const clientAPI = createClientAPI({
jwtToken: "",
appId: "",
})
const quiz = await clientAPI.GET("/v2/quiz/competitions/{id}/", {
params: { path: { id: 1 } },
})
const quizClient = new QuizWebSocketHandler(
{
jwtToken: "",
reconnect: true,
pingInterval: 5000,
},
quiz.data,
)
Then you can register the events.
Events
On Question message
import { QuestionWithoutIsCorrect } from "wits-client"
const callback = ({ question }: { question: QuestionWithoutIsCorrect }) => {}
quizClient.onNewQuestion(callback)
quizClient.offNewQuestion(callback)
On Stats Update
import { QuizStatsData } from "wits-client"
const callback = ({ data }: { data: QuizStatsData }) => {}
quizClient.onQuizStats(callback)
quizClient.onQuizStats(callback)
On Ping update
const callback = () => {
const updatedPing = quizClient.wsClient.getStatus().ping
}
quizClient.onPingUpdate(callback)
quizClient.offPingUpdate(callback)
On Correct Answer Broadcast
After each question time is finsihed, the correct answer will be broadcasted to show the correct answer.
import { CorrectAnswerBroadcastData } from "wits-client"
const callback = ({ data }: { data: CorrectAnswerBroadcast }) => {
const updatedPing = quizClient.wsClient.getStatus().ping
}
quizClient.onCorrectAnswerBroadcast(callback)
quizClient.offCorrectAnswerBroadcast(callback)
Select user's selected answer
quizClient.sendSelectAnswer({
questionId: -1,
selectedChoiceId: -1,
})
Request Hint
When a hint button is pressed, call this function to request a hint.
quizClient.requestHint({
hintId: -1,
hintType: "fifty",
questionId: -1,
})
Hint Response
The response of the hint will come with this event:
import { HintResponseData } from "wits-client"
const callback = (data: HintResponseData) => {}
quizClient.onHint(callback)
quizClient.offHint(callback)
On Quiz Finished
const callback = () => {}
quizClient.onQuizFinished(callback)
quizClient.offQuizFinished(callback)