programing

안드로이드는 거의 실시간 푸시 알림을 지원합니까?

cafebook 2023. 10. 20. 14:21
반응형

안드로이드는 거의 실시간 푸시 알림을 지원합니까?

저는 최근 아이폰 앱이 앱 알림에 대한 거의 즉각적인 알림을 받을 수 있는 능력에 대해 알게 되었습니다.

이것은 푸시 알림의 형태로 제공되는데, 아이폰에 대한 데이터 연결을 항상 유지하고 바이너리 패킷을 앱에 메시지를 보내는데, 이것은 서버 앱 전송 후 폰 앱 응답 시간까지 0.5~5초 사이에 믿을 수 없을 정도로 빠르게 경고를 팝업합니다.수신 메시지가 아닌 데이터 요금제의 일부로 충전된 매우 작은 패킷에서 SMS가 아닌 데이터로 전송됩니다.

Android를 사용하면 비슷한 시설이 있는지, Android API를 사용해서 이와 비슷한 것을 구현하는 것이 가능한지 알고 싶습니다.좀 더 명확하게 설명하자면, 저는 다음과 유사하다고 정의합니다.

  • SMS 메시지가 아닌 일부 데이터 기반 솔루션
  • 가능한 실시간으로
  • 확장성이 뛰어난 모바일 앱의 서버 부분으로서 수천 개의 앱 인스턴스를 몇 초 만에 알릴 수 있습니다.

저는 앱이 풀 기반, HTTP 요청/응답 스타일일 수 있다는 것에 감사하지만, 이상적으로 저는 단지 알림을 확인하기 위해 그렇게 심하게 여론조사를 하고 싶지 않습니다. 게다가 데이터 플랜을 적하하는 것과 같은 것 말입니다.

파이어베이스 클라우드 메시징 FCM FAQ는 GCM의 새로운 버전입니다.GCM의 핵심 인프라를 이어받아 안드로이드, iOS, Chrome에서 안정적으로 메시지를 전달합니다.하지만 오늘날 많은 개발자가 알림을 처리하기 위해 GCM SDK를 사용하고 있고 클라이언트 앱 업그레이드에 시간이 걸리기 때문에 GCM을 계속 지원할 것입니다.

2012년 6월 26일 현재 Google Cloud Messaging은 기기에서 실행 중인 애플리케이션에 메시지를 보내는 데 선호되는 방법입니다.

이전에는 (현재는 사용하지 않는 서비스) Cloud To Device Messaging)이라고 불렸습니다.

XMPP는 좋은 해결책입니다.푸시가 가능한 실시간 안드로이드 애플리케이션에 사용했습니다.XMPP는 강력하고 확장성이 뛰어나며 통합 및 사용이 용이합니다.

무료 XMPP 서버가 많이 있지만(관례상 남용해서는 안 되지만), 자신의 박스에서 실행할 수 있는 오픈 소스 서버도 있습니다.OpenFire는 훌륭한 선택입니다.

당신이 원하는 도서관은 위에 언급한 스맥이 아니라 스맥입니다.하지만 여기는 구축 환경입니다. 라이브러리를 구축해야 합니다.

XMPP 솔루션의 배터리 수명에 미치는 영향에 대한 계산은 다음과 같습니다.

Android 클라이언트는 XMPP 서버에 하트비트를 전송하기 위해 주기적으로 웨이크업하여 지속적인 TCP 연결을 유지해야 합니다.
이로 인해 전력 사용량 측면에서 비용이 발생하는 것은 분명합니다.이 비용의 추정치는 아래와 같습니다.

  • 1400mAh 배터리 사용(Nexus One 및 HTC Desire에 제공됨)
  • 3G 네트워크에 연결된 유휴 장치는 약 5mA를 사용합니다.
  • 기상, 심장박동, 수면 주기는 5분마다 발생하며 완료하는 데 3초가 소요되며 300mA를 사용합니다.
  • 따라서 시간당 배터리 사용 비용은 다음과 같습니다.
    • 36초 300mA = 3mAh 전송 하트비트
    • 공회전 시 3600초 5mA = 5mAh
    • 4:95 + 3 = 7:95mAh 합
  • 1400mAh 배터리는 유휴 상태에서 약 11.6일, 애플리케이션 실행 시 약 7.3일 동안 지속되므로 배터리 수명이 약 37% 감소합니다.
  • 그러나 배터리 수명이 37% 감소한 것은 장치가 완전히 유휴 상태인 경우가 거의 없다는 점을 감안할 때 실제로는 절대적으로 최악의 경우입니다.

저는 최근에 MQ를 하기 시작했습니다.TT http://mqtt.org for Android(Android)는 고객이 원하는 작업(SMS가 아닌 데이터 기반, 거의 즉각적인 메시지 전달, 확장 가능, 폴링 아님 등)을 수행하기 위한 방법입니다.

도움이 될 경우를 대비해 이에 대한 배경 정보가 있는 블로그 게시물이 있습니다. http://dalelane.co.uk/blog/ ?p=938

(참고: MQTT는 IBM의 기술이므로 IBM에서 근무하고 있음을 지적해야 합니다.)

Xtify 플랫폼을 살펴보십시오.이게 그들이 하는 짓인 것 같군요

Google은 C2DM을 평가절하하고 있지만, 대신 GCM(Google Cloud Messaging)을 도입하고 있습니다. 할당량과 무료라고 생각하지 않습니다!하지만 안드로이드 2.2+가 필요합니다!http://developer.android.com/guide/google/gcm/index.html

Google 라이브러리가 사용자가 원하는 시장에 있다고 확신할 수 있다면 GTalk 기능(기존 사용자 이름에 리소스를 등록하는 것 - 브로드캐스트 수신기와 함께 메시지를 수신할 때 이를 가로채는 것)을 다시 사용할 수 있습니다.

만약 그렇지 않다면, 그렇게 할없을 것으로 예상됩니다. 그러면 XMPP의 자체 버전을 번들로 제공하는 것이 좋습니다.XMPP가 독립 실행형 라이브러리로 별도로 번들되어 있는 경우에는 이 문제가 더 간단해질 수 있습니다.

PubSubHub도 고려해 볼 수 있지만, 저는 그것의 네트워크 사용에 대해 전혀 모릅니다.XMPP 위에 지어졌다고 생각합니다.

나는 이것을 알아봤는데 jamesh가 추천하는 PubSubHubBub은 옵션이 아닙니다.PubSubHubBub은 서버간 통신을 위한 것입니다.

"저는 NAT을 지원하고 있습니다.허브를 구독할 수 있습니까?허브가 연결이 안 돼요.

/익명

아니요, PSHB는 서버 대 서버 프로토콜입니다.NAT을 지원한다면 서버가 아닙니다.PSHB 확장 옵션에 대한 아이디어를 검토하여 이러한 클라이언트에 대한 수신 대기("롱 폴링") 및/또는 메시지 박스 폴링을 수행했지만 핵심 사양은 아닙니다.핵심 사양은 서버 대 서버 전용입니다.

/브래드 피츠패트릭, 샌프란시스코, 캘리포니아

출처 : http://moderator.appspot.com/ #15/e=43e1a&t=426ac&f=b0c2d (직접링크 불가)

가장 간단한 방법은 코멧 HTTP 푸시를 사용하는 것이라는 결론에 도달했습니다.이것은 간단하면서도 잘 알려진 해결책이지만 웹 응용 프로그램에도 다시 사용할 수 있습니다.

Meteomette 서버를 백엔드로 사용하여 Android에서 푸시 알림을 위한 Java 라이브러리를 개발하려는 새로운 오픈 소스 노력이 있습니다.디콘 프로젝트 블로그에서 확인하실 수 있습니다.개발자가 필요하니 널리 알려주세요!

Google은 최근(2016년 5월 18일) Firebase가 거의 실시간 푸시 알림을 포함하여 모바일 개발자를 위한 통합 플랫폼이 되었다고 발표했습니다.멀티 플랫폼이기도 합니다.

이 회사는 이제 iOS, Android 및 웹에 대한 지원과 함께 모든 Firebase 사용자에게 무료 및 무제한 알림을 제공합니다.

원천

어디서 읽었는지는 알 수 없지만, 지메일은 오픈 TCP 연결을 이용하여 이메일 푸시를 한다고 생각합니다.

~하듯이GTalkSDK에서 사라졌으니 '표준' 푸시 메시징 시스템을 만드는 것이 좋을 것 같습니다.이렇게 하면 하나의 서비스만 실행하면 되고, 하나의 추가 tcp 연결만 열리면 됩니다.응용 프로그램은 다음을 사용하여 이 서비스와 대화해야 합니다.Intents그리고 먼저 서비스에서 알림을 보내고 받을 수 있는 허가를 요청해야 합니다.그런 다음 서비스는 메시지를 보내고 받을 새 응용 프로그램을 사용자에게 통지해야 합니다.그러면 사용자가 권한을 부여하거나 거부하므로 사용자가 계속 통제할 수 있습니다.그러면 응용 프로그램이 수행 + 범주를 서비스에 등록하여 서비스가 푸시된 메시지를 전달하는 방법을 알 수 있게 됩니다.

좋은 생각일까요, 없을까요?

XMPP 구현을 진행하는 것은 어떨까요?지금은 gtalk, jabber, cardel 등을 포함한 많은 퍼블릭 서버가 있습니다.Android의 경우 SMACK이라는 이름의 SDK도 있습니다.푸시 알림이라고 할 수는 없지만 XMPP를 사용하면 클라이언트와 서버 간의 연결을 계속 열어 둘 수 있어 양방향 통신이 가능합니다.Android 클라이언트와 서버 모두 서로 통신할 수 있음을 의미합니다.현재 이것은 안드로이드에서 푸시의 필요성을 충족시킬 것입니다.샘플 코드를 구현했는데 정말 잘 작동합니다.

저는 최근에 http://pushdroid.org 을 개발했습니다. 이것은 구글이 2.2에서 구현한 것처럼 전화기에 설치되어야 하는 하나의 애플리케이션입니다. 이것은 1.5부터 작동하며 의도를 통해 방송됩니다.

GCM의 문제점은 프로세스에 많은 구성이 포함되어 있다는 것입니다.

  • 안드로이드 앱에 보일러 플레이트를 많이 추가해야 합니다.
  • GCM 서버와 통신하도록 외부 서버를 구성해야 합니다.
  • 당신은 시험을 작성해야할 것입니다.

만약 여러분이 (나처럼) 간단한 것을 좋아한다면 어반 에어쉽을 시도해보아야 합니다.많은 구성을 하지 않아도 앱에서 GCM을 가장 쉽게 사용할 수 있는 방법(IMHO)입니다.또한 GCM 메시지가 올바르게 전달되고 있는지 테스트할 수 있는 예쁜 GUI를 제공합니다.

  • 문서 및 시작 가이드는 여기에서 찾을 수 있습니다.
  • 여기서 샘플 어플리케이션을 찾을 수 있습니다.

참고: 저는 Urban Airship에 소속되어 있지 않습니다.

https://github.com/Guti/Google-Cloud-Messaging--Titanium-/blob/master/src/com/google/android/gcm/GCMRegistrar.java

그것은 정말로 잘 작동하는 푸시 솔루션입니다.

한번 써 보세요.

그들은 청취자들을 보유하고 있으며, 이 청취자들은 당신의 코드에 있는 도서관 수업을 사용함으로써 당신이 사용해야 합니다.당신은 재촉할 필요가 없습니다.서버 서버로 메시지를 보내야 장치로 메시지를 푸시할 수 있습니다.OAuth를 사용합니다.프로토콜의 경우 CCS와 XMPP를 사용하는 두 가지 방법이 있습니다. CCS는 XMPP를 인증된 전송 레이어로 사용하기 때문에 대부분의 XMPP 라이브러리를 사용하여 연결을 관리할 수 있습니다.단말기에 알림을 보내려면 안드로이드 앱에 서버 코드와 함께 보낼 코드를 작성하면 됩니다.메시지 전송은 오직 당신의 코드에 의해서만 이루어질 것입니다.휴식은 GCM의 경우 구글 서버에서 처리할 예정입니다.자세한 내용은 이 링크에서 확인하실 수 있습니다.

http://developer.android.com/google/gcm/server.html

또한 보안 문제의 경우

Google 클라우드 메시징 보안 https://groups.google.com/forum/ #!topic/android-gcm/M-EevBitbhQ

앱이 실행되지 않는 경우 방송 청취자를 위해 코드를 작성해야 하므로 장치에서 알림을 받을 수도 있습니다.백그라운드에서는 서버가 수신하고 메시지 패킷이 있을 때마다 알림으로 메시지를 수신합니다.안드로이드에는 신경 쓰지 않아도 되는 서비스가 있습니다.작업을 쉽게 해주는 라이브러리 클래스를 사용하여 이러한 리소스를 사용하기만 하면 되고, 앱이 실행 중이 아닐 경우에도 해당 리소스를 쓸 수 있도록 하면 알림을 받기도 합니다.분명히, 그 앱을 받을 수 있도록 만드는 일부 청취자가 있을 것입니다.이 링크에서 "메시지 수신" 섹션을 확인합니다.

http://developer.android.com/google/gcm/client.html

사용자들의 요청도 수락할 것입니다.GCM이면 됩니다."메시지 보내기"를 선택하십시오.

http://developer.android.com/google/gcm/client.html

언급URL : https://stackoverflow.com/questions/1243066/does-android-support-near-real-time-push-notification

반응형