Showing
5 changed files
with
14 additions
and
5 deletions
... | @@ -38,6 +38,7 @@ export const RoomInfoRecord = Record({ | ... | @@ -38,6 +38,7 @@ export const RoomInfoRecord = Record({ |
38 | users: Array( | 38 | users: Array( |
39 | Record({ | 39 | Record({ |
40 | username: String, | 40 | username: String, |
41 | + nickname: String, | ||
41 | admin: Boolean, | 42 | admin: Boolean, |
42 | ready: Boolean, | 43 | ready: Boolean, |
43 | }) | 44 | }) | ... | ... |
... | @@ -22,7 +22,7 @@ import { | ... | @@ -22,7 +22,7 @@ import { |
22 | // 'result' 속성은 서버 요청 결과에만 포함되는 특별한 속성입니다. | 22 | // 'result' 속성은 서버 요청 결과에만 포함되는 특별한 속성입니다. |
23 | export class ServerInboundMessageRecordMap { | 23 | export class ServerInboundMessageRecordMap { |
24 | // 로그인을 시도합니다. | 24 | // 로그인을 시도합니다. |
25 | - login = Record({ username: String }); | 25 | + login = Record({ nickname: String, result: String }); |
26 | 26 | ||
27 | // 방 목록을 요청합니다. | 27 | // 방 목록을 요청합니다. |
28 | roomList = Record({ | 28 | roomList = Record({ |
... | @@ -94,6 +94,7 @@ interface ServerOutboundMessageMap { | ... | @@ -94,6 +94,7 @@ interface ServerOutboundMessageMap { |
94 | state: "added" | "updated" | "removed"; | 94 | state: "added" | "updated" | "removed"; |
95 | user: { | 95 | user: { |
96 | username: string; | 96 | username: string; |
97 | + nickname: string; | ||
97 | admin: boolean; | 98 | admin: boolean; |
98 | ready: boolean; | 99 | ready: boolean; |
99 | }; | 100 | }; | ... | ... |
... | @@ -77,7 +77,7 @@ export class Connection { | ... | @@ -77,7 +77,7 @@ export class Connection { |
77 | private handleLogin( | 77 | private handleLogin( |
78 | message: ServerInboundMessage<"login"> | 78 | message: ServerInboundMessage<"login"> |
79 | ): ServerResponse<"login"> { | 79 | ): ServerResponse<"login"> { |
80 | - this.user = new User(message.username, this); | 80 | + this.user = new User(message.nickname, this); |
81 | // console.log(`User ${message.username} has logged in!`); | 81 | // console.log(`User ${message.username} has logged in!`); |
82 | 82 | ||
83 | return { ok: true }; | 83 | return { ok: true }; | ... | ... |
... | @@ -106,6 +106,7 @@ export class Room { | ... | @@ -106,6 +106,7 @@ export class Room { |
106 | state: "added", | 106 | state: "added", |
107 | user: { | 107 | user: { |
108 | username: user.username, | 108 | username: user.username, |
109 | + nickname: user.nickname, | ||
109 | admin: user === this.admin, | 110 | admin: user === this.admin, |
110 | ready: this.usersReady.includes(user), | 111 | ready: this.usersReady.includes(user), |
111 | }, | 112 | }, |
... | @@ -128,6 +129,7 @@ export class Room { | ... | @@ -128,6 +129,7 @@ export class Room { |
128 | state: "removed", | 129 | state: "removed", |
129 | user: { | 130 | user: { |
130 | username: user.username, | 131 | username: user.username, |
132 | + nickname: user.nickname, | ||
131 | admin: user === this.admin, | 133 | admin: user === this.admin, |
132 | ready: this.usersReady.includes(user), | 134 | ready: this.usersReady.includes(user), |
133 | }, | 135 | }, |
... | @@ -221,6 +223,7 @@ export class Room { | ... | @@ -221,6 +223,7 @@ export class Room { |
221 | state: "updated", | 223 | state: "updated", |
222 | user: { | 224 | user: { |
223 | username: user.username, | 225 | username: user.username, |
226 | + nickname: user.nickname, | ||
224 | admin: this.isAdmin(user), | 227 | admin: this.isAdmin(user), |
225 | ready: this.isReady(user), | 228 | ready: this.isReady(user), |
226 | }, | 229 | }, |
... | @@ -244,6 +247,7 @@ export class Room { | ... | @@ -244,6 +247,7 @@ export class Room { |
244 | users: this.users.map((u) => { | 247 | users: this.users.map((u) => { |
245 | return { | 248 | return { |
246 | username: u.username, | 249 | username: u.username, |
250 | + nickname: u.nickname, | ||
247 | admin: this.isAdmin(u), | 251 | admin: this.isAdmin(u), |
248 | ready: this.usersReady.includes(u), | 252 | ready: this.usersReady.includes(u), |
249 | }; | 253 | }; | ... | ... |
... | @@ -3,9 +3,11 @@ import { Connection } from "../connection/Connection"; | ... | @@ -3,9 +3,11 @@ import { Connection } from "../connection/Connection"; |
3 | import { MessageHandler } from "../message/MessageHandler"; | 3 | import { MessageHandler } from "../message/MessageHandler"; |
4 | import { Room } from "../room/Room"; | 4 | import { Room } from "../room/Room"; |
5 | import { RoomManager } from "../room/RoomManager"; | 5 | import { RoomManager } from "../room/RoomManager"; |
6 | +import { v4 as uuidv4 } from "uuid"; | ||
6 | 7 | ||
7 | export class User { | 8 | export class User { |
8 | - public readonly username: string; | 9 | + public readonly username: string; // TODO: 실제 역할은 uuid임 |
10 | + public readonly nickname: string; | ||
9 | 11 | ||
10 | public readonly connection: Connection; | 12 | public readonly connection: Connection; |
11 | 13 | ||
... | @@ -13,8 +15,9 @@ export class User { | ... | @@ -13,8 +15,9 @@ export class User { |
13 | 15 | ||
14 | public handler: MessageHandler; | 16 | public handler: MessageHandler; |
15 | 17 | ||
16 | - constructor(username: string, connection: Connection) { | 18 | + constructor(nickname: string, connection: Connection) { |
17 | - this.username = username; | 19 | + this.username = uuidv4(); |
20 | + this.nickname = nickname; | ||
18 | this.connection = connection; | 21 | this.connection = connection; |
19 | this.handler = new MessageHandler({ | 22 | this.handler = new MessageHandler({ |
20 | roomList: (user, message) => { | 23 | roomList: (user, message) => { | ... | ... |
-
Please register or login to post a comment