-
Notifications
You must be signed in to change notification settings - Fork 1
WebSocket Json仕様
たけちゃ edited this page Jul 15, 2020
·
11 revisions
ゲームのステータスと参加者情報を受け取る この情報がそのまま画面の内容となる。全員の画面に変更が必要な場合、この情報を送信する。
- 誰かが入室した時
- 誰かが退出した時
- 問題出題時
- 誰かが解答した時
- 全員が解答し終わった時
(none)
{
'type': 'Status',
'data': {
// 今の状態を示す 問題待ち 解答待ち 解答締め切り 解答オープン 結果発表
'currentStatus': 'WAITING_QUESTION' | 'WAITING_ANSWER' | 'CLOSE_ANSWER' | 'OPEN_ANSWER' | 'OPEN_AGGREGATE',
'currentQuestion': string | null // 今出ている問題 CLOSE_ANSWER, OPEN_ANSWER, OPEN_AGGREGATEの時必須
'players': [
// プレイヤーの数だけ下のオブジェクトが増える
{
'id': string // 一意なID
'name': string // ニックネーム
'role': 'admin' | 'player' | 'spectator' // プレイヤータイプ
'stars': number // 星の数
'answer': string | null, // プレイヤーが解答した内容
'isAnswered': boolean, // このプレイヤーが解答したか
'alterStars': number | null // 変更されたスターの数 'OPEN_AGGRIGATE' の時必須
'connectionStatus': 'online' | 'offline' // 接続されているかどうか
}
]
}
}
ブラウザがURLを開き、プレイヤー名を入力・決定したとき。
{
'type': 'ChangeName',
'data': {
'accountName': string
}
}
(none)
- 管理者側
isAdmin
に限って叩ける
{
'type': 'SetQuestion',
'data': {
'question': string,
'correctAnswer': string | null
}
}
(none)
ステータス情報 の currentStatus
で代用する。
ステータス情報の currentStatus
を CLOSE_ANSWER
に変更し、問題情報を追加して再送する。
プレイヤーの解答を締め切りする まだ解答を送信していないプレイヤーは強制的に今入力されている内容を送信する
- 管理者側に限って叩ける
{
'type': 'CloseApplications'
}
これが叩かれたらステータス情報の currentStatus
が CLOSE_ANSWER
に移動する。
{
'type': 'ForceSendAnswer'
}
まだ解答を出していないプレイヤーは解答提出を行う
- 解答締め切り時にサーバから強制解答送信指示をもらった時
- プレイヤーが
解答する
ボタンを押した時
{
'type': 'SetAnswer',
'data': {
'answer': string,
}
}
同時に全プレイヤーにステータス情報を再送
- 管理者側
isAdmin
に限って叩ける
{
'type': 'OpenAnswers'
}
(none)
ステータス情報 の currentStatus
で代用する。
サーバが OpenAnswers
を受信後ステータス情報の currentStatus
を OPEN_ANSWER
に変更し再送する。
(none)
- 管理者側
isAdmin
に限って叩ける
{
'type': 'SetAlterStars',
'data': {
'alterStars': [
{
'accountId': string,
'alterStars': number,
}
],
},
}
(none)
ステータス情報 の currentStatus
で代用する。
サーバが SetAlterStars
を受信後ステータス情報の currentStatus
を OPEN_AGGREGATE
に変更し再送する。
- 管理者側
isAdmin
に限って叩ける
{
'type': 'GoToNextQuestion',
}
(none)
ステータス情報 の currentStatus
で代用する。
サーバが goToNextQuestion
を受信後ステータス情報の currentStatus
を WAITING_QUESTION
に変更し再送する。