2016-09-30 105 views

回答

1

當您撥打subscribe時,瀏覽器連接到推送服務(例如GCMMozilla push service)並請求一個新的端點。

然後,承諾已解決,您可以使用AJAX將該端點發送到您自己的應用服務器(或類似Pushpad的服務)。您的服務器可以使用該端點發送通知(就像電子郵件地址一樣)。

最後,每個用戶有瀏覽器中打開時,它連接到GCM,它驗證通過展示其端點(或者與之相關聯的祕密),並讀取任何新的通知。

有關詳細信息:https://www.w3.org/TR/push-api/#sequence-diagram

如果沒有連接,怎麼會推送服務知道要更新IP地址,如果客戶端移動(更改IP地址)?

必須有一個連接,否則通知無法傳遞。如果IP改變,這不是問題:它是連接到推送服務的客戶端,而不是反過來。

+1

通知可發送如果瀏覽器不公開的,所以如果用戶改變位置,但並未打開瀏覽器(所以沒有到GCM連接),只是沒有交付的通知,直到他們打開瀏覽器,並連接?這是如何運作的? –

+0

@NickSearle您無法直接使用GCM來管理位置。 GCM非常簡單,只知道如何將通知傳遞給給定的端點/設備。這是您的網絡應用程序/服務必須跟蹤用戶的位置:目前只有在用戶瀏覽您的網站或收到推送通知時才能更新它。 – collimarco

+1

建議每當用戶訪問您的應用程序時調用pushManager.getSubscription(),因爲訂閱對象可能在其生命週期中更改。如果不能獲得關於端點的任何信息(因爲GCM無法知道端點是否改變),您是否知道訂閱對象有哪些變化? –

相關問題