Firebase Cloud Messaging last collapse_key가 수신되지 않았습니다(요금이 제한됩니까?).
저는 Firebase Cloud Messaging을 사용하여 매개 변수가 설정된 FCM Data 메시지를 사용하여 Android 클라이언트와 통신하는 서비스를 가지고 있습니다.접이식 키에 대한 설명서에서 다음을 참조하십시오.
오래된 스레드를 렌더링하는 새 메시지가 있는 경우 관련 메시지는 클라이언트 앱과 무관해지고 FCM이 오래된 메시지를 대체합니다.예를 들어 동기화로 보내기 또는 오래된 알림 메시지입니다.
이것이 제가 찾고 있는 것입니다.모든 업데이트가 필요한 것은 아니고 마지막 업데이트만 필요합니다.하지만 사용자가 온라인 상태라면 최대한 빨리 필요합니다.
그러나 HTTP 오류 코드가 발생하지 않는 이상한 속도 제한이 발생합니다.20개의 연속적인 데이터 메시지를 수행하고 안드로이드를 모니터링하기만 하면 꽤 쉽게 재생할 수 있습니다.FirebaseMessagingService.onMessageReceived
:
for i in {1..20}; do
curl -v -X POST --header "Authorization: key=$SERVER_KEY" \
--Header "Content-Type: application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{\"to\":\"$CLIENT_TOKEN\", \
\"data\":{\"counter\":\"$i\"}, \
\"priority\":\"high\", \
\"collapse_key\": \"test\" \
}"
done
위의 bash 스크립트는 읽기가 조금 어렵지만, 저는 관심 있는 변수가 있습니다.
몇 번의 메시지를 받은 후에 (counter=~10
) 중지되고 네트워크 상태를 전환하여 마지막 메시지를 수신해야 합니다.counter=20
또한 마지막 메시지는 화재 기반 체크인이 요청될 때(일반적으로 ~10분) 몇 분 후에 나타납니다.
제거 중collapse_key
위의 curl 명령에서 20개의 모든 메시지가 수신됩니다(여기서).counter={1..20}
).
자, 질문은 다음과 같습니다.이거 벌레야?또는 인터페이스를 "남용"하기 때문에 (모든 요청이 다음을 다시 전송하므로) 종료(/환율 제한)하는 것입니까?200
제가 괜찮다고 생각한 응답).
<?php
#API access key from Google API's Console
define( 'API_ACCESS_KEY', 'YOUR-SERVER-API-ACCESS-KEY-GOES-HERE' );
$registrationIds = $_GET['id'];
#prep the bundle
$msg = array
(
'body' => 'Body Of Notification',
'title' => 'Title Of Notification',
'icon' => 'myicon',/*Default Icon*/
'sound' => 'mySound'/*Default sound*/
);
$fields = array
(
'to' => $registrationIds,
'notification' => $msg
);
$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
#Send Reponse To FireBase Server
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
$result = curl_exec($ch );
curl_close( $ch );
#Echo Result Of FireBase Server
echo $result;
본문 섹션에 데이터를 입력합니다.
언급URL : https://stackoverflow.com/questions/41528270/firebase-cloud-messaging-last-collapse-key-not-received-rate-limited
'programing' 카테고리의 다른 글
j이미지 로드 시 콜백 쿼리(이미지가 캐시된 경우에도 마찬가지) (0) | 2023.06.10 |
---|---|
부동 소수점 반올림 모드 변경 (0) | 2023.06.10 |
배열 목록에서 쉼표로 구분된 문자열을 만들려면 어떻게 해야 합니까? (0) | 2023.06.10 |
하나의 활성 세션에서만 ORA-08177을 무작위로 얻습니다. (0) | 2023.06.10 |
Windows 10에서 Python을 실행하려는 "권한 거부" (0) | 2023.06.05 |