WebAPI/SimplePush/Protocol: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Created page with "[Work In Progress] The following are SimplePush hoo-doo things that are probably not important to you. Here, look at this device while I put on my sunglasses. ;Channel :The flo...")
 
No edit summary
Line 1: Line 1:
[Work In Progress]
This page describes the protocol used for communication by the PushServer and the UserAgent.


The following are SimplePush hoo-doo things that are probably not important to you. Here, look at this device while I put on my sunglasses.
'''Status: Draft'''
 
'''Everything here applies to Version 1 of the protocol'''. Major versions may change underlying protocols, message formats and anything else.
 
== Purpose ==
 
The SimplePush protocol is closely based on [http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/pubs/archive/37474.pdf Thialfi: A Client Notification Service for Internet-Scale Applications] and makes the same delivery guarantees, soft server state and client driven recovery. It is a signalling and not a data carrying system. The goal: To notify clients of changes to application server state in a reliable manner by ensuring that the client will always eventually learn of the latest version of an object for which it has expressed interest.
 
== Definitions ==
 
;PushServer
A publicly accessible server that implements the server side of the Push Protocol and exposes an HTTP API for AppServer's to notify it.
 
;UserAgent
A device or program that implements the client side of the Push Protocol.


;Channel
;Channel
Line 7: Line 21:


;ChannelID
;ChannelID
:Unique identifier for a Channel. Generated by UserAgent for a particular application.
:Unique identifier for a Channel. Generated by UserAgent for a particular application. Opaque identifier for both UserAgent and PushServer


;UAID
;UAID
:A globally unique UserAgent ID
:A globally unique UserAgent ID. Used by the PushServer to associate channelIDs with a client. Stored by the UserAgent, but opaque to it.
 
;Version
Monotonically increasing 64-bit integer describing the application state. This
holds meaning as a primary key or similar only to the AppServer. The PushServer
and UserAgent and App should use this only for detecting changes.


Index
== Protocol Overview ==



Describe in short how the protocol works
NOTIFICATION
DESKTOP NOTIFICATION
GROUPS MANAGEMENT


== Messages ==


Urls - More info
=== Handshake ===


https://wiki.mozilla.org/WebAPI/SimplePush
=== Register ===
http://www.w3.org/TR/push-api/


http://frsela.github.com/notification_server_doc/
=== Unregister ===


https://github.com/acperez/mozilla-central/blob/push-client-netwerk-server-socket/dom/push/src/PushNotificationService.js#L642
=== Notification ===
https://github.com/frsela/pushJSlibrary/blob/master/library/push.js
https://github.com/telefonicaid/notification_server


http://www.youtube.com/watch?v=s6tOZdPYda8&feature=youtu.be
== Synchronization of server and client state ==


== Acheiving reliable delivery ==


API Push Client - Push Server
API Push Client - Push Server
Confirmed users
93

edits

Navigation menu