얼마전에 리눅스에서 웹서버를 구축 했습니다...
사실 책보고 따라하면서 처음 구축 해 보았습니다... 이런 저런 난간들이 많았지만 어떻게 잘 해결이 되었네요 ㅎㅎㅎ
안드로이드도 공부 한지 그렇게 오래 되지도 않았구요 ㅠ
공부하다 보니 궁금한 점이 생겨 질문을 드려요 ㅎㅎ
예를들어 카톡으로 설명 하겠습니다.
카톡은 폰이 카톡이 켜져있지 않아도 메시지가 오면 알려 주잖아요??
즉, 이 말은 카톡 어플에서 서버에 접속하여 실시간으로 메시지를 받아오는 것이 아니라, 서버에서 메시지가 오면 단말기에게 알려준다는 말이 되잖아요??
저는 서버에서 단말기에 메시지(?) 같은 것을 보내는 방법이 어떠한 방법인지 궁금하여 질문을 드립니다.
어떠한 키워드를 검색하면 공부를 할 수 있을까요???
아, 그리구 단말기에서 서버가 메시지(?)를 보내오면 그것을 감지(캐치?)하는 리스너에 대해서도 급 궁금증이 생기네요...ㅎㅎ ㅠ
안드로이드 펍 사이트와는 무관하나... 이러한 일들을 해 보신 분들이 있으리라 생각하고 여기에 글을 올리게 되었습니다...
다시 요약정리하면...
1. 서버에서 단말기로 메시지(?) 보내는 것에 대한 질문입니다.
2. 단말기가 서버에서 보내오는 메시지(?)를 감지(캐치?) 하는 것에 대한 질문입니다.
오늘도 고생많으시네요~^^ 안드로이드 펍 여러분 늘 감사합니다 ㅎㅎㅎ
제가 말씀드려 되레 헷갈릴지 모르겠는데요
해당 클라이언트가 서버에 접속하면 고유 세션키가 남습니다.
이 세션값을 이용하여 서버,클라이언트간의 상호정보를 주고받고 특정기능들을 수행할수있습니다
이 외에도 서버세션이라는것이 있어서 이걸로 각각의 클라이언트세션정보를 이용하여 클라이언트간의 커뮤니케이션도 만들수있습니다.
이는 웹프로그래밍을 하면 알수있는 내용들이구요
자바는 ip주소를 이용한 소켓프로그래밍을 통하여 클라이언트 vs 클라이언트간의 상호통신도 가능할겁니다
고수님께 물어보세요 ^^;
일단 자세히 하고 싶으신 내용을 모르겠지만 서버하고 클라이언트 관계가 필요한듯 생각하면 될까요? 보통 흔히 쓰고 있는 클라이언트에 웹브라우져를 예를 들면 서버는 웹서버(톰캣이나 아파치)같은 것이 있겠지요. 브라우져는 쿠키정보에 서버의 섹션정보를 관리합니다. 일반적으로 유져가 인식하지 않아도 되도록 되어 있지만요. 그걸 앱에서 하실려면 서버의 섹션정보를 앱에서 관리하셔야 합니다. 저도 하지 않은 내용이라서 자세히는 설명드릴 수 없지만 해당하는 클래스(안드로이드 API가 아니라 자바API를 사용할 겁니다.)가 있는 걸로 알고 있으니 찾아보세요. 그렇지만 인증이 필요없는 경우는 위에 내용은 별로 신경 안쓰셔도 됩니다. 인증이 필요없는 경우란 서버가 정보를 일반공개해도 되는 내용일 경우 입니다. 이런경우는 앱에서 서버에서 보내는 정보를 파싱해서 정보를 이용하면 되는데요.
HTML파싱, XML, Json같은 것이 이용되는데 보통은 json이 제일 많이 사용되는 것같습니다. html파싱인 경우는 본인이 파싱클래스를 만들어야 해서 저는 잘 안씁니다만 서버를 본인이 관리 안하시는 경우 xml이나 Json같은 서비스를 제공안하는 서버라면 할 수 없이 html파싱을 해야겠지요.
[바람이가는길]님 말씀처럼 클라이언트간의 커뮤니케이션을 원하신다면 각각의 클라이언트가 대상클라이언트의 IP같은 정보를 가지고 있어야 하지만, 앱이나 유동아이피같은 경우는 수시로 정보를 특정한 곳(서버등)에 정보를 공유해야 합니다. 그래서 메신저같은 앱이라도 서버가 필요하게 되는 거죠.




안드로이드의 앱에는 서비스라고 하는 상주 프로세스를 작성할 수 있습니다. 겉으로는 표시되지 않지만은요. 카카톡은 어느쪽에서 어느쪽으로 Request가 가는지 모르지만 서버에서 앱으로 보내려고 하려면 앱의 네트워크 정보를 상시 체크해서 가지고 있어야 할 겁니다. 어느쪽이라도 앱에서 일정한 간격으로 네트워크 정보를 서버에 보내든지 Request를 하는 방법을 하지 않으면 안될 듯 생각됩니다.