node.js와 socket.io를 사용하여 web messenger를 구현하고있습니다.

조회수 2754회

이번에 처음 node.js와 socket.io를 접하고 공부하면서 구현해보고있는 초보입니다.

간단한 채팅이라면야 자료가 수두룩한데 깊이 들어갈수록 뭔가 찾기 힘들어지네요.

제가 생각을 한 것은 가입할때 닉네임(?)을 작성하고, 그 닉네임을 namespace로 두고 그 안에 Email로 room을 생성하는것을 생각하고 있습니다.

test1 = { '방1' , '방2', '방3' ..... }, test2 = { '방1' , '방2', '방3' ..... }

이런식으로 구현하는걸 생각하고 있습니다.

1이 2에게 대화를 건다면, 우선 2의 네임스페이스로 가서 방 정보를 가져와 내 이메일로된 방이 있는지 체크를 해서 방이 있으면 그대로 join하고 존재하지 않으면 1의 네임스페이스에다가 2의 이메일로 된 방을 생성하는걸 생각해 보았습니다.

그런데 이게 정상적이고 효율적인 방법인지도 모르겠고... 어느정도 가이드가 있으면 좋겠는데 찾을수가 없어서 힘드네요...염치없지만 어느정도 가이드를 제시해 주실수 있으신가요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    딱히 정답이 없는 문제라서 고민하다가 답변을 드립니다.

    닉네임마다 room의 목록을 가지고 있는데, 그 안에서는 (상대방의 닉네임이 아닌) 상대방의 email로 찾는 것은 이상합니다. Unique한 속성 하나를 정해서 사용자를 구분하는 id로 사용하는 것이 좋습니다.

    각 room이 고유의 id를 가지도록 하고, 사용자 1, 사용자 2 각각 자신이 대화하고 있는 (상대방의 id + room id)의 목록을 관리하는 것이 어떨까 싶습니다. 좀 더 깊이 들어가자면, 서로가 동시에 상대방에게 대화를 걸었을 때 어떻게 해야 할지에 대한 고민도 필요합니다.

    도움이 되셨기를 바랍니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • Email로 가입하려고 했던 부분이라 PK로 잡아뒀었습니다. 답변 감사드립니다! KimTaesik 2016.4.18 17:03

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)