Push Notifications (WP7): Unterschied zwischen den Versionen
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]] | ||
+ | ===1=== | ||
+ | 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> | ||
+ | |||
+ | ===2=== | ||
+ | Wurde der Channel eingerichtet kann erhält man die [[URI]] vom Channel und kann diese an den eigenen Server übermitteln. | ||
+ | |||
+ | ===3=== | ||
+ | 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/TODO== | ||
+ | Aktuell sind keine Broadcast Nachrichten möglich, daher muss jeder Client einzeln angeschrieben werden. Außerdem garantiert Microsoft keine Übermittlung der Nachrichten. | ||
+ | Unklar ist auch noch | ||
[[Kategorie:Windows Phone 7]] | [[Kategorie:Windows Phone 7]] |
Version vom 3. März 2011, 10:29 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
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.
1
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>
2
Wurde der Channel eingerichtet kann erhält man die URI vom Channel und kann diese an den eigenen Server übermitteln.
3
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/TODO
Aktuell sind keine Broadcast Nachrichten möglich, daher muss jeder Client einzeln angeschrieben werden. Außerdem garantiert Microsoft keine Übermittlung der Nachrichten. Unklar ist auch noch