마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

소켓 통신을 서비스로 구현하는 부분 질문입니다.

0 추천

안녕하세요 초보 개발자입니다.

 

이번에 소켓통신을 이용한 채팅앱을 구현하는 것을 배워서 조금 더 응용해 보려고 하는데요.

목적은 소켓통신하는 부분을 서비스에 구현해서 어느 액티비티에서나 채팅이 이루어지도록 하는것입니다.

 

그래서 서비스에 대한 부분을 찾아보았는데, 어떤 방식으로 구현해야하는지 많이 헷갈리더라구요 ㅠㅠ

간단한 로드맵을 그려주시면 정말 좋을것 같습니다.

감사합니다!

 

소켓통신을 이용한 채팅앱에 관련된 내용은 이 블로그를 참고했습니다

http://kitesoft.tistory.com/57

아싱심해 (160 포인트) 님이 2017년 4월 6일 질문

2개의 답변

+1 추천
 
채택된 답변
만약에...제가 개발을 한다면 대략 이런식으로 개발할 것 같습니다.

[메세지를 보낼때]

  액티비티 → 서비스(로컬DB저장) → 채팅서버

[메세지를 받을때]

  채팅서버 → 서비스(로컬DB저장) → 액티비티

 

1. 채팅서버와의 통신은 서비스에서 하며 모든 메세지는 로컬DB에 저장한다.

   - 메세지는 서버에 접속해있지 않으면 중간에 유실되기 때문에 로컬DB에 저장하여 관리

   - 메세지는 적절한 PK로 유니크하게 관리

   - 서비스는 네트워크가 사용가능할 경우나 특정 이벤트를 적용하여 채팅서버와 항상 접속 유지를 합니다.

2. 액티비가 떠 있는데 서비스에서 콜백이나 핸들러 등으로 메세지 수신하여 화면에 보이는 경우

   해당 메세지는 읽음으로 업데이트 합니다.

3. 액티비티가 변경 될 경우 서비스를 통해 기존 메세지중 읽음이 아닌 메세지만 조회하여 보여줍니다.

   메세지가 너무 많을 경우 적절한 페이징등으로 잘라 보여줍니다.(더보기등)

   물론 이 도중에도 메세지를 수신할 수가 있는데 그럼 2의 과정을 추가 하면 됩니다.
착실이 (860 포인트) 님이 2017년 4월 6일 답변
아싱심해님이 2017년 4월 6일 채택됨
감사합니다
어느정도 길이 보이는것 같네요
공부는 더 많이 필요할듯 하지만요 ㅎㅎ..
0 추천
저도 초보잔데 저 블로그 보면서 하구 있거든요ㅠㅠ

그런데 실행이 안되는데 혹시 저 블로그대로 코딩하셔서 실행이 되셨나요?ㅠㅠ
익명사용자 님이 2018년 3월 19일 답변
...