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