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 답변
-
딱히 정답이 없는 문제라서 고민하다가 답변을 드립니다.
닉네임마다 room의 목록을 가지고 있는데, 그 안에서는 (상대방의 닉네임이 아닌) 상대방의 email로 찾는 것은 이상합니다. Unique한 속성 하나를 정해서 사용자를 구분하는 id로 사용하는 것이 좋습니다.
각 room이 고유의 id를 가지도록 하고, 사용자 1, 사용자 2 각각 자신이 대화하고 있는 (상대방의 id + room id)의 목록을 관리하는 것이 어떨까 싶습니다. 좀 더 깊이 들어가자면, 서로가 동시에 상대방에게 대화를 걸었을 때 어떻게 해야 할지에 대한 고민도 필요합니다.
도움이 되셨기를 바랍니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력