2016-05-12 54 views
1

我目前正在Firefox桌面瀏覽器上發送網絡通知。 不幸的是,刪除的令牌仍然可以通過Mozilla推送服務器推送。刪除的Firefox令牌仍然可以通過Mozilla推送服務器推送

要刪除由ServiceWorker生成的令牌(即訂閱端點),我只需清除緩存歷史記錄。然後,我發送一個通知給已刪除的端點:Mozilla返回一個201 Created,告訴我們已經爲用戶創建了通知並準備發送。

但是,如果我使用Chrome瀏覽器重複相同步驟,則Google雲消息傳遞會告知我們該令牌未被註冊(參見GCM documentation>「未註冊的設備」)。

但是,我可以在Mozilla documentation中清楚地看到有這種情況的錯誤代碼:cf errno 103 - Expired URL endpointerrno106 - Invalid subscription

此外,我必須說,如果我阻止原始通知權限,以前授予,Mozilla因此返回一個errno106 - Invalid Subscription錯誤。問題在於令牌已被刪除。

+0

我不明白當你說「令牌已被刪除」時你的意思。令牌被「刪除」,意味着當用戶阻止原生通知權限時,該令牌不再有效。 – collimarco

+1

@collimarco說白了:用戶有一個端點並接收Web推送。但是,如果他清除瀏覽器緩存,他將不會再收到網絡通知。所以這個端點變得毫無用處。我希望Mozilla告訴我,我不應該再發送到這個端點。 – Arturo

+0

我同意你的意見。有些情況下,您不知道通知是否會發送。然而,這是關於Push API規範的一個問題,或者Mozilla如何處理這個問題:我不認爲StackOverflow中的某個人可以提供解決方案。 – collimarco

回答

1

Mozilla已經一直在這不受歡迎的行爲:BugZilla #1277615

它現在是固定的Firefox的開發版V49,它在這種情況下返回errno106 - No such subscription