Push Notifications (WP7): Unterschied zwischen den Versionen
(→Schwächen/Begrenzungen) |
|||
(12 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | [[Microsoft]] bietet für [[Windows Phone 7]] an über einen eigenen Dienst [[Push Notifiactions]] zu verschicken, dabei gibt 3 verschiedene Arten von Notifications. | + | [[Microsoft]] bietet für [[Windows Phone 7]] an über einen eigenen Dienst [[Push Notifiactions]] (PN) zu verschicken, dabei gibt 3 verschiedene Arten von Notifications. |
* Toast - Meldung oben auf dem Display | * Toast - Meldung oben auf dem Display | ||
* Tile - Kachel auf dem Startscreen | * Tile - Kachel auf dem Startscreen | ||
Zeile 8: | Zeile 8: | ||
Raw Daten werden zum Client übertragen und wenn die Anwendung nicht aktiv ist werden sie verworfen. Raw Daten unterliegen einem Größen-Limit von 1kb | Raw Daten werden zum Client übertragen und wenn die Anwendung nicht aktiv ist werden sie verworfen. Raw Daten unterliegen einem Größen-Limit von 1kb | ||
+ | |||
+ | ==Ablauf== | ||
+ | In der Kommunikation für die PNs existieren 3 Parteien das WP7 Gerät, der Microsoft Push Notification Service (MPNS) und der eigene Server für die PNs. | ||
+ | |||
+ | [[Bild:PN-Kommunikation.png]] | ||
+ | ===Client meldet sich am MPNS an=== | ||
+ | Im 1. Schritt öffnet der Client einen neuen Channel zum MPNS oder erzeugt einen neuen, der verwendete Name dient nur des Wiederfindens des Channels auf dem Gerät: | ||
+ | <code=csharp> | ||
+ | httpChannel = HttpNotificationChannel.Find(channelName); | ||
+ | |||
+ | if ( httpChannel!=null) | ||
+ | { | ||
+ | // registrieren der Events | ||
+ | // registrieren am eigenen Server | ||
+ | // weitere Config wie für Toast Meldungen | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | httpChannel = new HttpNotificationChannel(channelName, serviceName); | ||
+ | // registrieren der Events | ||
+ | httpChannel.Open(); | ||
+ | } | ||
+ | </code=csharp> | ||
+ | Nach einer Änderung von Seiten Microsoft muss der ''serviceName'' nur gesetzt werden wenn man einen authentifizierten Push Service betreiben will, dann entspricht dieser dem Zertifikatsnamen. | ||
+ | |||
+ | ===Registrierung am Server=== | ||
+ | Wurde der Channel eingerichtet kann erhält man die [[URI]] vom Channel und kann diese an den eigenen Server übermitteln. | ||
+ | |||
+ | ===Senden von Daten=== | ||
+ | Hat sich der Client beim Server mit der URI registriert, kann dieser über diese Adresse Notifications an den Client schicken. | ||
+ | Alle Daten die der Server zum MPNS schicken will müssen per '''POST''' gesendet werden und verschiedene [[HTTP-Header]]-Felder beeinhalten. | ||
+ | *''ContentType'' - text/xml; charset=utf-8 | ||
+ | *''Content-Length'' - Länge der kompletten Daten | ||
+ | *''X-MessageID'' - ID für die Nachricht | ||
+ | *''X-NotificationClass'' - Art der Nachricht | ||
+ | ** Token = 1 | ||
+ | ** Toast = 2 | ||
+ | ** Raw = 3 | ||
+ | *''X-WindowsPhone-Target - toast oder token (optional) | ||
+ | |||
+ | ==Schwächen/Begrenzungen== | ||
+ | Aktuell sind keine Broadcast Nachrichten möglich, daher muss jeder Client einzeln angeschrieben werden. Außerdem garantiert Microsoft keine Übermittlung der Nachrichten. | ||
+ | |||
+ | Pro Channel/Uri ist es möglich 500 Nachrichten/24h zu versenden, will man mehr verschicken muss dazu ein Zertifikat für die Anwendung hochgeladen werden (Marketplace Account) | ||
+ | |||
+ | Wird die gleiche MessageID für mehrere Nachrichten verwendet, wird der Channel gelöscht und jede weitere Übertragung mit '''404''' quitiert. | ||
+ | |||
+ | |||
+ | Die URLs/Tokens verfallen nach einer gewissen Zeit (wie viel muss noch rausgefunden werden), der Push Server quitiert dies mit 412. | ||
+ | |||
+ | ==Weblinks== | ||
+ | *[http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/05/03/understanding-microsoft-push-notifications-for-windows-phones.aspx Understanding Microsoft Push Notifications for Windows Phones] | ||
+ | *[http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/05/04/understanding-how-microsoft-push-notification-works-part-2.aspx Understanding How Microsoft Push Notification Works – Part 2] | ||
+ | *[http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/05/06/using-push-notification-from-your-windows-phone-application.aspx Using Push Notification from Your Windows Phone Application] | ||
+ | *[http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/02/17/push-notification-status.aspx Push Notification Status] | ||
+ | *[http://windowsteamblog.com/windows_phone/b/wpdev/archive/2011/01/14/windows-push-notification-server-side-helper-library.aspx Windows Push Notification Server Side Helper Library] | ||
+ | *[http://msdn.microsoft.com/en-us/library/ff941100(v=vs.92).aspx Server Statuscodes] | ||
[[Kategorie:Windows Phone 7]] | [[Kategorie:Windows Phone 7]] |
Aktuelle Version vom 16. April 2012, 18:23 Uhr
Microsoft bietet für Windows Phone 7 an über einen eigenen Dienst Push Notifiactions (PN) zu verschicken, dabei gibt 3 verschiedene Arten von Notifications.
- Toast - Meldung oben auf dem Display
- Tile - Kachel auf dem Startscreen
- Raw - Raw Daten für die Anwendung
Inhaltsverzeichnis
Raw
Raw Daten werden zum Client übertragen und wenn die Anwendung nicht aktiv ist werden sie verworfen. Raw Daten unterliegen einem Größen-Limit von 1kb
Ablauf
In der Kommunikation für die PNs existieren 3 Parteien das WP7 Gerät, der Microsoft Push Notification Service (MPNS) und der eigene Server für die PNs.
Client meldet sich am MPNS an
Im 1. Schritt öffnet der Client einen neuen Channel zum MPNS oder erzeugt einen neuen, der verwendete Name dient nur des Wiederfindens des Channels auf dem Gerät: <code=csharp> httpChannel = HttpNotificationChannel.Find(channelName);
if ( httpChannel!=null) {
// registrieren der Events // registrieren am eigenen Server // weitere Config wie für Toast Meldungen
} else {
httpChannel = new HttpNotificationChannel(channelName, serviceName); // registrieren der Events httpChannel.Open();
} </code=csharp> Nach einer Änderung von Seiten Microsoft muss der serviceName nur gesetzt werden wenn man einen authentifizierten Push Service betreiben will, dann entspricht dieser dem Zertifikatsnamen.
Registrierung am Server
Wurde der Channel eingerichtet kann erhält man die URI vom Channel und kann diese an den eigenen Server übermitteln.
Senden von Daten
Hat sich der Client beim Server mit der URI registriert, kann dieser über diese Adresse Notifications an den Client schicken. Alle Daten die der Server zum MPNS schicken will müssen per POST gesendet werden und verschiedene HTTP-Header-Felder beeinhalten.
- ContentType - text/xml; charset=utf-8
- Content-Length - Länge der kompletten Daten
- X-MessageID - ID für die Nachricht
- X-NotificationClass - Art der Nachricht
- Token = 1
- Toast = 2
- Raw = 3
- X-WindowsPhone-Target - toast oder token (optional)
Schwächen/Begrenzungen
Aktuell sind keine Broadcast Nachrichten möglich, daher muss jeder Client einzeln angeschrieben werden. Außerdem garantiert Microsoft keine Übermittlung der Nachrichten.
Pro Channel/Uri ist es möglich 500 Nachrichten/24h zu versenden, will man mehr verschicken muss dazu ein Zertifikat für die Anwendung hochgeladen werden (Marketplace Account)
Wird die gleiche MessageID für mehrere Nachrichten verwendet, wird der Channel gelöscht und jede weitere Übertragung mit 404 quitiert.
Die URLs/Tokens verfallen nach einer gewissen Zeit (wie viel muss noch rausgefunden werden), der Push Server quitiert dies mit 412.