2017-11-08 67 views
0

Azure Cloud에서 ASP.Net Web Forms 응용 프로그램을 실행 중입니다. 이제는 서버가 인터넷을 통해 들어오는 연결을 안드로이드 클라이언트에서 수락 한 다음 오랜 시간 (일) 동안 해당 연결을 열어 두거나 대기 상태로 유지해야한다는 문제를 해결할 방법을 모르는 특별한 요구 사항이 있습니다. . 몇 시간 또는 며칠 후에 서버는 안드로이드 클라이언트로가는 길을 찾아 데이터를 보내야합니다. 나는 두 파트너 모두에게 적합한 기술을 사용할 수 있지만 인터넷이 중간에 있기 때문에 http/https가 프로토콜로 선호됩니다 (TCP 끝점이있는 WCF는 클라이언트가 연결을 시작할 때도 작동 할 수 있음). 내가 생각할 수있는 유일한 방법은 명령/데이터를 사용할 수있는 경우 클라이언트가 지속적으로 서버를 폴링하도록하는 것이지만 그 솔루션은 추악하고 많은 자원을 낭비합니다. 클라이언트는 서버가 할 일이있을 때 몇 초 내에 반응해야하므로 ~ 10 초의 폴링 간격을 사용해야합니다. 나는 http "살아있다"가 존재하고 C# WebClient에서 유용 할 수 있지만, 그것이 내 요구 사항과 함께 작동하는지는 의심 스럽습니다. 이것을 달성 할 다른 가능성이 있습니까?ASP.Net : Android 클라이언트와 지속적인 통신 채널

+0

FCM 다운 스트림 메시징에 대해 들어 본 적이 있습니까? –

+0

아니요, 아직 살펴 보지 않았습니다. 언뜻보기에 고객에게 합리적인 데이터를 보낼 필요가 없으므로 유효한 옵션 일 수 있습니다. 나는 그들이 어떻게 애플 리케이션에서 구글 서버에 열려있는 연결을 유지 궁금해 ... – Cleo

+0

U는 FCM의 서버 사이드 구현을해야합니다. 나는. 나머지 호출을 사용하고 인스턴스 ID를 사용하여 데이터를 장치로 전송하십시오. –

답변

0

Niraj의 응답에 따라 Google Firebase Cloud Messaging을 발견했습니다. 그 후 XNetP 프로토콜 및 SignalR 기술을 .Net에서 사용할 수 있으며, 구현이 가장 간단하고 타사의 참여가 필요하지 않으므로 결국 SignalR과 함께 결정했습니다.