更改服务人员订阅端点

时间:2018-06-27 09:11:07

标签: javascript push-notification google-cloud-messaging firebase-cloud-messaging service-worker

因此,我试图进入Push API,并建立了一个非常基本的示例,其中包含一个空的service-worker.js和一个index.js,它们现在才触发订阅:

function subscribeUserToPush() {
    return navigator.serviceWorker.register('service worker.js').then(function(registration) {
        var subscribeOptions = {
            userVisibleOnly: true,
            applicationServerKey: urlBase64ToUint8Array(
            'foobarkeyoffoobarness'
            )
        };

        return registration.pushManager.subscribe(subscribeOptions);
    }).then(function(pushSubscription) {
        console.log('PushSubscription: ', pushSubscription);
        return pushSubscription;
    });
}

和我发回的订阅终结点类似“ fcm.googleapis.com/fcm/send/dfyodk6jd3c:APA91bETwSnoOpagCulOlD11XJu7savlJXp4hwEqKeqldHJxW6_WQTfjNTKjsT9JpY1au>。

现在我的问题是:实际上是否有可能(即使是个坏主意)拥有自定义的推送服务终结点,自托管解决方案?

Google firebase实际上对此有垄断权吗?

2 个答案:

答案 0 :(得分:2)

offered link指出,每个浏览器都可以使用他们想要的任何推送服务,这是开发人员无法控制的

我需要在使用本地网络且无法访问Internet的组织中使用“推送通知”,但是事实证明,至少现在暂时服务人员的“推送通知”不适用于Intranet,也许不久的将来还会出现一些情况。解决方案中,有一种名为SignalR的替代技术,但是您可能会知道,当关闭浏览器选项卡时,它不起作用,因此与WbPush相反的SignalR无法唤醒关闭的Web浏览器。

也许唯一的希望是 dom.push.serverURL ,您可以在here中了解更多信息。 我还了解到Firefox使用Autopush作为推送服务。 以下是一些说明您不能执行的链接: WebPush without third party- Change Push provider

答案 1 :(得分:1)

如果有人感兴趣:https://developers.google.com/web/fundamentals/push-notifications/how-push-works

  

在订阅流程中,浏览器从以下位置请求订阅   消息传递服务器。每个浏览器供应商都有自己的消息传递   服务器,但您的浏览器知道要调用哪个服务器。