2012-04-25 2 views
0

나는 안드로이드 앱의 문 앞에있는 사람들로부터 웹캠 이미지를 볼 수있는 프로젝트를 진행하고 있습니다.Android 연속 TCP 폴링

하지만 조금 혼란스러워지고 있습니다. 이미지 전송을 처리하는 서버에 내 전화기의 서비스 연결을 설정할 수있었습니다.

하지만 누군가가 초인종을 누르면 서버에서 이미지를 얻고 싶습니다. 그래서 문 앞에 사람이 있다는 것을 알기 위해 알림이나 앱을 보내야합니다. 나는 그의 전화에 대답하고 싶다.

이제 내가 혼란 스럽다 : 서비스가 생성 될 때 tcp 소켓이 openend이기 때문에 안드로이드 서비스에서 tcp 소켓을 열면 내 서버가 'call'메시지를 보내는 것을 어떻게 알 수 있습니까? 매초마다 폴링을 유지해야합니까? 그럼 내가 전화 메시지를 놓칠 수있는 작은 기회가 아직도 있니?

또는 클라이언트가 서버 및 초인종으로 실행해야합니까? 그렇지 않으면 클라이언트가 연결을 요청합니까?

+0

초인종 사건을 어떻게 감지합니까? 서버가 문과 카메라와 같은 위치에 있습니까? 초인종, 서버 또는 안드로이드 클라이언트를 누가 탐지합니까? –

+0

서버는 서버 응용 프로그램 인 Qt 프로그램을 실행하는 Linux 기반 컴퓨터입니다. 초인종을 누르면 Qt 프로그램이이를 인식하고 초인종이 눌러 진 클라이언트 (안드로이드 앱)를 보냅니다. –

답변

1

클라우드로 기기 메시징, c2dm을 살펴보십시오. 훨씬 더 효율적입니다. 안드로이드에 내장. https://developers.google.com/android/c2dm/

+0

따라서 C2DM을 사용하여 서버에서 클라우드로, 클라우드를 내 클라우드로 보내는 것이 좋습니다 기계적 인조 인간. 그래서 내 안드로이드에서 클라우드로 메시지를 다시 보내거나 이미지를 읽기 위해 TCP 소켓을 열어야합니까? Qt (C++)를 사용하여 서버 측을 작성합니다. –

+0

+1 C2DM에 대해 알지 못했습니다. –

+1

@Gunther 서버는 클라이언트를 기다리는 열린 소켓을 가질 수 있으며, 초인종이 울리면 클라이언트 안드로이드 앱이 소켓을 열고 이미지 피드 받기를 시작할 수 있도록 C2DM 메시지를 보냅니다. –

0

서비스가 생성 될 때 tcp 소켓이 열리면 서버에서 연결된 클라이언트로 적절한 메시지를 보내면됩니다. 당신의 클라이언트가 연결되면, 그것을 얻을 것이다. 클라이언트가 계속해서 연결하고 연결을 끊을 경우에만 폴링하면됩니다. 많은 HTTP 1 웹 서비스가 그렇듯.

+0

그리고 코드에서 메시지를 확인해야하는 곳은 어디입니까? –