Replies: 2 comments 15 replies
-
Firebase Cloud Messaging is directly compatible to WebPush notifications. This is used by Chrome and some other Chromium-based browsers to receive WebPush notifications through the Firebase Cloud Messaging infrastructure (which is also used by Chrome). I wrote down how to register as a client app with FCM to receive a token that can be used to push using WebPush protocol here: https://gist.github.com/mar-v-in/2a054e3a4c0a508656549fc7d0aaeb74#webpush This would allow to completely get rid of the redirect proxy when sending to FCM. You can also send WebPush notifications to a UnifiedPush endpoint. UnifiedPush currently implements a subset of WebPush (i.e. it does not use VAPID), but it still would delivers the push notification to the client. I think it would make more sense to extend UnifiedPush server-side protocol to fully support the WebPush protocol rather than supporting WebPush AND UnifiedPush in every protocol. UnifiedPush would still be responseible for delivering the push notification to the client on the client-side (using the APIs specified in the Android and DBus specification documents of the UnifiedPush protocol). Limiting this whole specification to use WebPush exclusively reduces complexity in the specification. If a vendor wants to use any other protocols than WebPush, their best way to do so is to provide a WebPush redirect proxy. Let's unify on one common standard for the server side of push notifications - and with WebPush already having wide support (on Google Android and all major browsers) and being an IETF standard, it seems the obvious choice for that. |
Beta Was this translation helpful? Give feedback.
-
I wouldn't specify that they have to implement a single backend. May be RFC 8030 but there may be times where RFC 8030 (or a direct successor) isn't used anymore, but WebDAV-Push is. Similar things have happened for many protocols.
Where is the problem / "damage" with specifying that multiple transports are supported, and RFC 8030 is currently the (maybe only) recommended one? Regarding UP / Web Push: I have seen that they are too similar as this could be by chance, however I'm still confused that there's no official reference from one to the other, no compatibility table, no definition about missing features etc. And for instance sending VAPID headers to UP without reason, well yes, one could do it, but it still sounds strange to me. But I think at the end this question won't matter. It's now time to make these things actually work, and how we call the transport then and whether there are two slightly different ones or one for all, shouldn't really make a difference. My biggest previous questions (without having experience in the "push universe") were whether WebDAV-Push could support topics in the sense of FCM (transport does the 1:n multiplication), and it seems that a 1:1 architecture is a better idea becaues of simplicity, E2EE and existing protocols/components. Another question was whether we can support both open and proprietary (and not only Google FCM, but also Huawei Push and maybe others) push systems, and I'm happy to know that this should work without big extra efforts. If someone sees "big" problems with this architecture (like missing components or that something won't work in reality), please tell us here. In this case we'd had to re-think everything and it should happen as soon as possible. Otherwise we would now build more functional components on all sides (client + WebDAV server) while updating our draft continously. |
Beta Was this translation helpful? Give feedback.
-
This is our current favorite architecture. Other architectures we have thought about: #16, #17, #18, #20
Update 25 Dec 2023: UnifiedPush is a 100% compatible subset of Web Push from a WebDAV-Push point of view
A key decision is whether to support topics (= multiple clients subscribe to the same topic and then the application server pushes only one "topic update" and leaves sending the single notifications to the push transport) or not. In this architecture we don't have topics. This allows to keep things simple and, more important, to directly support UnifiedPush. The WebDAV server and especially the FCM redirector have to handle a bit more traffic (one notification per client instead of one topic update for all clients), but this comes with the advantage that software components can be less complex: the redirector doesn't need to keep any state and is thus much easier to build, maintain and host. As soon as we drop the "topics" requirement (which came up when studying proprietary APIs like FCM, who always provide topics and it seems common to use them here), it becomes much easier to use other open standards/components.
We aim to support the possibility of other push transports, but for our primary use cases and planned implementations we focus on
Web Push
UnifiedPush can be used for mobile (like DAVx⁵) and desktop apps (like desktop Groupware applications or file managers). From an RFC 8030 Application Server point of view, UP endpoints are designed to be 100% compatible RFC 8030 push resources and UP servers can be treated like RFC 8030 Push Services.
Beta Was this translation helpful? Give feedback.
All reactions