NodeJs Socket.io 채팅 앱
조회수 1700회
현재 애플리케이션을 구현하고 있는데, 서버 부분을 개발하고 있습니다.
사용자 계정 정보로 로그인을 해서 DB에 유저 정보를 저장합니다.
,
글을 쓰는 등 여러 기능이 있는데,
이제 채팅 부분만 남아서 여러 채팅 구현 방법을 알아보고 있는데, Socket.io
로 구현할 생각을 하고 있습니다.
1
제 애플리케이션은 한 사용자가 글을 남기면, 그 글을 본 어떤 사용자가 그 글을 작성한 사용자에게 메시지를 보낼 수 있는 기능을 가진 채팅이 필요합니다.
여기서는 메시지를 받을 사용자가 offline일 때도 메시지를 받을 수 있어야 합니다.
그런데 아무리 찾아봐도 socket.io
에서 offline인 clients에게 메시지를 보낼 방법을 찾기가 힘들더군요.. 혹시 그런 방법이 있을 까요?
2
client들이 socket에 접속 할 때 마다 계속 다른 socket.id
를 가지더군요
저는 한 클라이언트가 다른 클라이언트에게 메시지를 보낼 때,
io.to(**socket.id**).emit('event', message)
이런 방식으로 구현했습니다.
한 사용자가 socket에 재접속하여 socket.id
가 바뀌었다면,
서버나 다른 클라이언트가 그 사용자의 socket.id
가 바뀐 사실을 알아야 할텐데 어떻게 처리해야 할지 모르겠습니다.
(DB에 사용자의 정보를 저장하고 있으니 사용자 table의 field에 socket.id를 추가해서 DB로 동기화 시킬려고 하려고 했으나, 매번 DB에서 꺼내야 하기 때문에 시간이 너무 많이 들 것같습니다..)
혹시 그 처리방법에 대한 예제가 있을 까요?
3
앱을 껐다가 켜도, 다른 사용자와 주고 받았던 메시지를 유지 하고싶습니다.
이 점은 여러가지 방법이 있으리라 예상되는데, 주로 대부분의 애플리케이션들은 어떤 방법을 사용하는지 궁금합니다.
이것은 session
을 사용 할 수도 cookie
를 사용 할 수도, DB
를 사용 할 수도 있을 것 같은데 주로 어떤 방법을 사용 하나요??
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력