update: 优化 Push 推送请求
Signed-off-by: huyufei <yufei.hu@castbox.fm>
parent
4a77e9afb9
commit
7237dbfcae
|
|
@ -17,6 +17,7 @@ namespace Guru
|
||||||
// public static bool? IsInitMessage;
|
// public static bool? IsInitMessage;
|
||||||
private static bool _isAutoFetchFcmToken = true;
|
private static bool _isAutoFetchFcmToken = true;
|
||||||
private static bool _isFetchOnce = false;
|
private static bool _isFetchOnce = false;
|
||||||
|
// private static bool _isOnFetching = false;
|
||||||
|
|
||||||
public static void SetAutoFetchFcmToken(bool value)
|
public static void SetAutoFetchFcmToken(bool value)
|
||||||
{
|
{
|
||||||
|
|
@ -25,6 +26,13 @@ namespace Guru
|
||||||
|
|
||||||
private static void InitializeMessage()
|
private static void InitializeMessage()
|
||||||
{
|
{
|
||||||
|
// 初始化回调挂载
|
||||||
|
FirebaseMessaging.TokenReceived -= OnTokenReceived;
|
||||||
|
FirebaseMessaging.MessageReceived -= OnMessageReceived;
|
||||||
|
|
||||||
|
FirebaseMessaging.TokenReceived += OnTokenReceived;
|
||||||
|
FirebaseMessaging.MessageReceived += OnMessageReceived;
|
||||||
|
|
||||||
if (_isAutoFetchFcmToken)
|
if (_isAutoFetchFcmToken)
|
||||||
{
|
{
|
||||||
StartFetchFcmToken();
|
StartFetchFcmToken();
|
||||||
|
|
@ -36,8 +44,6 @@ namespace Guru
|
||||||
if (_isFetchOnce) return;
|
if (_isFetchOnce) return;
|
||||||
_isFetchOnce = true;
|
_isFetchOnce = true;
|
||||||
|
|
||||||
FirebaseMessaging.TokenReceived += OnTokenReceived;
|
|
||||||
FirebaseMessaging.MessageReceived += OnMessageReceived;
|
|
||||||
DelayGetFCMToken(0);
|
DelayGetFCMToken(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -46,11 +52,12 @@ namespace Guru
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private static void GetFCMTokenAsync()
|
private static void GetFCMTokenAsync()
|
||||||
{
|
{
|
||||||
Debug.Log($"[SDK][Firebase] --- Start GetTokenAsync ---");
|
Debug.Log($"{LOG_TAG}[SDK]--- Start GetTokenAsync ---");
|
||||||
FirebaseMessaging.GetTokenAsync().ContinueWithOnMainThread(task =>
|
FirebaseMessaging.GetTokenAsync().ContinueWithOnMainThread(task =>
|
||||||
{
|
{
|
||||||
if (!task.IsCompletedSuccessfully)
|
if (task.IsCanceled || task.IsFaulted)
|
||||||
{
|
{
|
||||||
|
// task 获取失败
|
||||||
DelayGetFCMToken(_retryTokenDelay);
|
DelayGetFCMToken(_retryTokenDelay);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -59,12 +66,13 @@ namespace Guru
|
||||||
if (string.IsNullOrEmpty(token)
|
if (string.IsNullOrEmpty(token)
|
||||||
&& string.IsNullOrEmpty(IPMConfig.IPM_PUSH_TOKEN))
|
&& string.IsNullOrEmpty(IPMConfig.IPM_PUSH_TOKEN))
|
||||||
{
|
{
|
||||||
|
// 拉取到了空值, 且无缓存值
|
||||||
DelayGetFCMToken(_retryTokenDelay);
|
DelayGetFCMToken(_retryTokenDelay);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Debug.Log($"[Firebase] --- GetPushToken:{token}");
|
Debug.Log($"{LOG_TAG}[SDK] --- GetPushToken:{token}");
|
||||||
if (!string.IsNullOrEmpty(token))
|
if (!string.IsNullOrEmpty(token))
|
||||||
{
|
{
|
||||||
IPMConfig.IPM_PUSH_TOKEN = token;
|
IPMConfig.IPM_PUSH_TOKEN = token;
|
||||||
|
|
@ -73,7 +81,7 @@ namespace Guru
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async void DelayGetFCMToken(int seconds = 10)
|
private static async void DelayGetFCMToken(int seconds = 2)
|
||||||
{
|
{
|
||||||
await Task.Delay(seconds * 1000); // 等待 10s
|
await Task.Delay(seconds * 1000); // 等待 10s
|
||||||
GetFCMTokenAsync();
|
GetFCMTokenAsync();
|
||||||
|
|
@ -134,7 +142,7 @@ namespace Guru
|
||||||
.SetFailCallBack(() =>
|
.SetFailCallBack(() =>
|
||||||
{
|
{
|
||||||
Debug.Log($"{LOG_TAG} --- UploadDeviceInfo:failed");
|
Debug.Log($"{LOG_TAG} --- UploadDeviceInfo:failed");
|
||||||
double retryDelay = Math.Pow(2, _retryDeviceCount);
|
double retryDelay = Math.Pow(2, Mathf.Min(_retryDeviceCount, 6));
|
||||||
_retryDeviceCount++;
|
_retryDeviceCount++;
|
||||||
CoroutineHelper.Instance.StartDelayed((float) retryDelay, UploadDeviceInfo);
|
CoroutineHelper.Instance.StartDelayed((float) retryDelay, UploadDeviceInfo);
|
||||||
}).Send();
|
}).Send();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue