我正在尝试了解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_WQTfjNTKjsT9JpY1auK...."。
现在我的问题是:是否实际上(即使这是个坏主意),可以拥有自定义的推送服务终端点,一个自托管的解决方案?
谷歌 Firebase 是否真的垄断了这一领域?