- From: Michael van Ouwerkerk <mvanouwerkerk@google.com>
- Date: Tue, 13 May 2014 14:39:12 +0100
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: Martin Thomson <martin.thomson@gmail.com>, "public-webapps@w3.org" <public-webapps@w3.org>, EDUARDO FULLEA CARRERA <efc@tid.es>, "SULLIVAN, BRYAN L (ATTCINW)" <bs3131@att.com>, Doug Turner <dougt@mozilla.com>
- Message-ID: <CAF40kP7CzLHAk7945=8j7Cpv16i5Pi23ePfaan7zqAbmMA5iEw@mail.gmail.com>
Martin, in Chrome we use registrationId and endpoint for distinct purposes. The endpoint is the push server url to which the app server posts new messages. The registrationId identifies the correct {device, user, page} to which the message will be sent. Please see this diagram for the full picture: https://www.lucidchart.com/documents/view/5c9b43c3-cd0a-44f2-95aa-27a22dad2d95/0 For more context, here's the general design document for our implementation in Chrome: https://docs.google.com/a/chromium.org/document/d/1-YTIsnKfLfqELO54vo-lz3WaW2R8LARBpH0AZKkze4M/edit I realize these are very Chrome specific, and implementations may differ, but some concrete examples might help this discussion. Regards, Michael On Tue, May 13, 2014 at 10:10 AM, Tab Atkins Jr. <jackalmage@gmail.com>wrote: > On Tue, May 13, 2014 at 1:08 AM, Martin Thomson > <martin.thomson@gmail.com> wrote: > > The push API currently identifies a registration with a tuple: > > > > interface PushRegistration { > > readonly attribute DOMString pushEndpoint; > > readonly attribute DOMString pushRegistrationId; > > }; > > > > It looks like both are used by the push server. Local methods seem to > > rely on the pushRegistrationId; the remote application server uses the > > pushEndpoint, though details are not currently specified [1]. > > > > In my experience, the pushEndpoint is a sufficiently unique > > identifier. Contingent on some conclusions on the protocol side, this > > could be defined as a URL and used as an identifier. That single > > identifier should suffice. > > Using URLs as identifiers is an anti-pattern which we should have > learned by now. In practice, multiple distinct URLs map to the same > resource, and people understand this intuitively. The fact that those > multiple distinct URLs are multiple distinct identifiers is > unintuitive and hard to use correctly, as XML Namespaces has taught us > well over the years. > > (For example, the presence/absence of a slash at the end of a URL is > almost never relevant in real life, but you have to memorize which > pattern is used by a particular URL-as-identifier, and there's no > real-life consensus about which to use. Same with ordering of query > params, http vs https, capitalization of domain name, etc. The hash > is relevant as an identifier, but not as a URL. It's all terrible.) > > ~TJ > >
Received on Tuesday, 13 May 2014 13:39:40 UTC