Push Notifications (WP7): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(3)
Zeile 13: Zeile 13:
  
 
[[Bild:PN-Kommunikation.png]]
 
[[Bild:PN-Kommunikation.png]]
===1===
+
===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:
 
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>
 
<code=csharp>
Zeile 32: Zeile 32:
 
</code=csharp>
 
</code=csharp>
  
===2===
+
===Registrierung am Server===
 
Wurde der Channel eingerichtet kann erhält man die [[URI]] vom Channel und kann diese an den eigenen Server übermitteln.
 
Wurde der Channel eingerichtet kann erhält man die [[URI]] vom Channel und kann diese an den eigenen Server übermitteln.
  
===3===
+
===Senden von Daten===
 
Hat sich der Client beim Server mit der URI registriert, kann dieser über diese Adresse Notifications an den Client schicken.  
 
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.
 
Alle Daten die der Server zum MPNS schicken will müssen per '''POST''' gesendet werden und verschiedene [[HTTP-Header]]-Felder beeinhalten.

Version vom 3. März 2011, 12:03 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.

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>

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/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 wie hoch das Limit der PNs ist, auf einigen Seiten wird von 15 pro Gerät pro Tag geschrieben, andere sagen jedoch 500 Nachrichten pro Tag.


Weblinks