更改服务工作者订阅端点

Change service worker subscribe endpoint

所以我尝试进入 Push API 并设置了一个非常基本的示例,其中包含一个空服务-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_WQTfjNTKjsT9JpY1auK...."

现在我的问题是:是否真的有可能(即使这是一个坏主意)有一个自定义的推送服务端点,一个自托管解决方案?

Googlefirebase真的垄断了这个吗?

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

During the subscription flow the browser requests a subscription from the messaging server. Each browser vendor has it’s own messaging server, but your browser knows which server to call.

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

我需要在使用本地网络且无法访问互联网的组织中使用推送通知,但事实证明服务工作者推送通知至少目前不适合内网,也许在不久的将来会有是一些解决方案,有一个名为 SignalR 技术的替代方案,但您可能知道它在浏览器选项卡关闭时不起作用,因此与 WbPush 相反,SignalR 无法唤醒关闭的网络浏览器。

也许唯一的希望是 dom.push.serverURL,您可以在 here 中阅读更多相关信息。 我还了解到 Firefox 使用 Autopush 作为推送服务。 这里有一些链接说你不能: WebPush without third party -