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

[ 소켓통신 ] 소켓통신이 맞는 결정일까요?

0 추천
안녕하세요~

맞는 결정인지... 요즘 트렌드에 맞는 안정적인 결정인지... 고수님들의

의견을 듣고 싶어서 질문 드려봅니다 ㅠㅠ

안드로이드 ->  서버 -> 단말기 가 있습니다

조건.

1. 단말기에서 데이터가 발생(0.1kb)하면 서버를 통해 안드로이드에 알려주어야합니다

2. 안드로이드에서 데이터가 발생(0.1kb)하면 서버를 통해 해당 단말기에도 알려주어야 합니다

3. 데이터 누락은 없어야 합니다

4. 서버는 1대로 작업 해야합니다

5. 단말기의 수는 2,000개 입니다

6. 안드로이드가 2,000개 단말기가 2,000개 이며, 1:1 통신입니다

저는 소켓통신으로 스레드 2,000개 만들어서 각각 통신하면 될 같아서... 소켓통신으로 결정을

했는데, 요즘 너무 새로운 시스템들이 많이 나와서... 맞는 결정인지 고수님들의 조언을 듣고 싶습니다

많은 조언 부탁드립니다

감사합니다
뱅스아부지 (410 포인트) 님이 2023년 11월 27일 질문

2개의 답변

0 추천
 
채택된 답변
TCP 소켓 통신은 구현하기 어렵지 않나요? 이게 그렇게 어렵지 않고 익숙하시다면 하셔도 됩니다.

http 를 사용하여도 가능은 해 보입니다.

단말기->서버 or 안드로이드->서버는 전혀 문제가 되지 않고

서버-> 단말기 or 서버-> 안드로이드가 문제인데요,

해결방법은 주기적으로 단말기나 안드로이드가 서버에 풀링하는것입니다. 예) 1초에 한번씩 서버에 내가 받을게 있는지 물어보고 있다면 가져옴

1초에 4000개 요청 처리는 보통 서버는 문제없이 합니다. 물론 요청처리가 간단해야겠죠?

만약 좀더 빠른 실시간 동기화가 필요하다면 ( 예 0.1 초 이내에 서로 통신이 완료되어야 함 )

socket.io 를 쓰면 어느정도 빨라집니다.

더 빠른 응답이 필요하다면 다시 소켓통신으로 가야하구요...

결국 필요한 성능에 따라 가장 적합한것을 사용하는게 좋겠네요.
minukobba (880 포인트) 님이 2023년 11월 28일 답변
뱅스아부지님이 2023년 11월 28일 채택됨
조언 감사합니다~
1초에 4,000개 요청을 해본적이 없어서.. 몰랐던 정보인데 감사합니다
0 추천
서버에서 소켙을 2000개 여신다는 말씀이시죠. 서버와 안드로이드간에는 푸시가 젹합한지 테스트해 보시고, 아니면

https://socket.io/ 와 같은 것도 검토해 보시기 바랍니다.
spark (226,720 포인트) 님이 2023년 11월 27일 답변
답변 감사드립니다
네트워크가 복잡한 곳에서 푸시가 안오는 경우가 빈번해서 ㅠㅠ 소켓 알아볼게용~
...