Toggle navigation
Toggle navigation
This project
Loading...
Sign in
강동현
/
nodejs-game
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
강동현
2021-06-01 13:31:14 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
a0d48510865d255c9fbf4873cc35ee10b2575c57
a0d48510
1 parent
ce81def6
메세지 타입 재작성
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
119 additions
and
0 deletions
common/message.ts
common/message.ts
View file @
a0d4851
// 서버로 들어오는 메세지 타입을 정의합니다.
// 'result' 속성은 서버 요청 결과에만 포함되는 특별한 속성입니다.
export
interface
ServerInboundMessageMap
{
// 로그인을 시도합니다.
login
:
{
username
:
string
;
};
// 방 목록을 요청합니다.
roomList
:
{
result
:
{
uuid
:
string
;
...
...
@@ -10,10 +15,124 @@ export interface ServerInboundMessageMap {
maxUsers
:
number
;
}[];
};
// 방에 접속합니다.
joinRoom
:
{
uuid
:
string
;
result
:
{
uuid
:
string
;
name
:
string
;
maxUsers
:
number
;
users
:
{
username
:
string
;
}[];
};
};
// 방에서 나갑니다.
leaveRoom
:
{};
// 채팅을 보냅니다.
chat
:
{
message
:
string
;
};
// drawer가 단어를 선택합니다.
chooseWord
:
{
word
:
string
;
};
// 브러시 정보를 변경합니다.
setBrush
:
{
size
:
number
;
color
:
string
;
drawing
:
boolean
;
};
// 브러시를 이동합니다.
moveBrush
:
{
x
:
number
;
y
:
number
;
};
}
// 서버에서 나가는 메세지 타입을 정의합니다.
export
interface
ServerOutboundMessageMap
{
// 방에 접속 중인 유저 목록이 업데이트 되었습니다.
updateRoomUser
:
{
state
:
"added"
|
"updated"
|
"removed"
;
user
:
{
username
:
string
;
};
};
// 다른 유저가 채팅을 보냈습니다.
chat
:
{
sender
:
string
;
message
:
string
;
};
// 라운드가 시작되었습니다.
startRound
:
{
round
:
number
;
duration
:
number
;
roles
:
{
username
:
string
;
role
:
"drawer"
|
"guesser"
|
"winner"
|
"spectator"
;
};
};
// drawer에게 선택할 수 있는 단어가 주어졌습니다.
wordSet
:
{
words
:
string
[];
};
// 이번 라운드의 단어가 선택되었습니다.
wordChosen
:
{
length
:
number
;
};
// 라운드 타이머 정보를 동기화합니다.
timer
:
{
state
:
"started"
|
"stopped"
;
time
:
number
;
};
// 라운드가 종료되었습니다.
finishRound
:
{
answer
:
string
;
};
// 역할이 변경되었습니다.
role
:
{
username
:
string
;
role
:
"drawer"
|
"guesser"
|
"winner"
|
"spectator"
;
};
// 보낸 단어가 정답 처리 되었습니다.
answerAccepted
:
{
answer
:
string
;
};
// 게임이 종료되었습니다.
finishGame
:
{};
// 브러시 정보가 변경되었습니다.
setBrush
:
{
size
:
number
;
color
:
string
;
drawing
:
boolean
;
};
// 브러시가 이동되었습니다.
moveBrush
:
{
x
:
number
;
y
:
number
;
};
}
export
interface
ServerResponse
<
T
>
{
ok
:
boolean
;
reason
?:
string
;
result
?:
T
;
}
...
...
Please
register
or
login
to post a comment