プッシュ通知機能を使用して、2つのWP7アプリを使用してメッセージを相互にやり取りするように見えているようです。あれは正しいですか?
サブスクリプションが成功したときに返送された一意のURIを使用して、プッシュ通知サービス(MSホスト)に各デバイスを依頼する必要があります。 SL3/4はHttpWebRequestオブジェクトを作成することができるので、送信する正しいパッケージを作成できるはずですが、難しい点は投稿を送信するデバイスのURIを取得する方法になります。通常、投稿は購読者に送信されます。購読者は購読段階で返されたURIを知っています。
public bool sendTileUpdate(string tileText, string url, string image)
{
string TilePushXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<wp:Notification xmlns:wp=\"WPNotification\">" +
"<wp:Tile>" +
"<wp:BackgroundImage>{2}</wp:BackgroundImage>" +
"<wp:Count>{0}</wp:Count>" +
"<wp:Title>{1}</wp:Title>" +
"</wp:Tile>" +
"</wp:Notification>";
try
{
HttpWebRequest sendNotificationRequest = (HttpWebRequest)WebRequest.Create(url);
sendNotificationRequest.Method = "POST";
sendNotificationRequest.Headers = new WebHeaderCollection();
sendNotificationRequest.ContentType = "text/xml";
// Tile
sendNotificationRequest.Headers.Add("X-WindowsPhone-Target", "token");
sendNotificationRequest.Headers.Add("X-NotificationClass", "1");
string str = string.Format(TilePushXML, "", tileText, image);
byte[] strBytes = new UTF8Encoding().GetBytes(str);
sendNotificationRequest.ContentLength = strBytes.Length;
using (Stream requestStream = sendNotificationRequest.GetRequestStream())
{
requestStream.Write(strBytes, 0, strBytes.Length);
}
HttpWebResponse response = (HttpWebResponse)sendNotificationRequest.GetResponse();
string notificationStatus = response.Headers["X-NotificationStatus"];
string deviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"];
return true;
}
catch (Exception e)
{
return false;
}
}
私はこれがTileNotificationですけど、原則は同じです:
私のWCFはWCFはWCFメソッドが呼び出されたときに送信されるデバイスのURIを、知っている場合、コードはのみ動作しホステッド。
私はマンゴー(WP7.1 & SL4)がsocketsをサポートし、これはあなたのデバイスが通信するためのより適切な方法であるかもしれないことを理解します!
幸運、
Jason。
申し訳ありませんが、私はあなたが意味することに従っていません。あなたの質問を明確にしてください。また、通知は一方向であるため、「クライアントからの通知の送受信」には使用できません。 – ZombieSheep
私は今質問を編集しますか? – curiosity