강동현

Merge branch 'feature/chat-by-nickname' into develop

......@@ -37,7 +37,7 @@
해당 메세지에는 변화된 유저를 특정하기 위한 `username`이 포함되어 있고, 그 유저의 닉네임인 `nickname`, 방장 여부인 `admin`, 준비 여부인 `ready`를 포함하고 있습니다.
유저가 채팅을 입력했다면 `chat`을 보내면 됩니다. 다른 사람이 채팅을 입력한 경우에도 `chat`이 수신됩니다(`ServerInboundMessage<"chat">``ServerOutboundMessage<"chat">`이 다르게 정의되었다는 점에 유의하세요). 자신이 보낸 채팅에 대해서는 수신되지 않으므로 이 경우 오프라인으로 메세지를 추가하여야 합니다. 채팅 문자열의 양 끝 공백을 제거했을 때 문자열이 빈 문자열이거나, 채팅 문자열의 길이가 300을 초과하는 경우 요청이 실패 처리됩니다.
유저가 채팅을 입력했다면 `chat`을 보내면 됩니다. 다른 사람이 채팅을 입력한 경우에도 `chat`이 수신됩니다(`ServerInboundMessage<"chat">``ServerOutboundMessage<"chat">`이 다르게 정의되었다는 점에 유의하세요). `sender` 속성은 채팅을 보낸 유저의 닉네임입니다. 채팅 문자열의 양 끝 공백을 제거했을 때 문자열이 빈 문자열이거나, 채팅 문자열의 길이가 300을 초과하는 경우 요청이 실패 처리됩니다.
방을 나가고 싶으면 `leaveRoom`을 보내면 됩니다.
......
......@@ -215,7 +215,7 @@ export class Room {
}
public sendChat(user: User, message: string): void {
this.broadcast("chat", { sender: user.username, message: message });
this.broadcast("chat", { sender: user.nickname, message: message });
}
private updateUserStatus(user: User) {
......
......@@ -27,7 +27,7 @@ describe("채팅", () => {
} = prepareJoinedRoom(1);
socket.testOk("chat", { message: "Hello World" });
});
it("자신을 제외한 다른 사람들이 채팅을 받습니다", () => {
it("모두가 채팅을 받습니다", () => {
const {
sockets: [socket1, socket2],
users: [user1, user2],
......@@ -35,9 +35,13 @@ describe("채팅", () => {
socket1.testOk("chat", { message: "Hello World" });
expect(socket1.socket.received("chat")).deep.eq({
message: "Hello World",
sender: user1.nickname,
});
expect(socket2.socket.received("chat")).deep.eq({
message: "Hello World",
sender: user1.username,
sender: user1.nickname,
});
});
it("빈 채팅은 보낼 수 없습니다", () => {
......