本番APNサーバーを使用してMDMプッシュ通知をiPadに送信しようとしています。ただし、Push Sharpは、識別子が1に等しいため、通知が失敗したと述べています。PushSharpコードベースの次のコードは、その結論に至る方法を示しています。
//We now expect apple to close the connection on us anyway, so let's try and close things
// up here as well to get a head start
//Hopefully this way we have less messages written to the stream that we have to requeue
try { stream.Close(); stream.Dispose(); }
catch { }
//Get the enhanced format response
// byte 0 is always '1', byte 1 is the status, bytes 2,3,4,5 are the identifier of the notification
var identifier = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(readBuffer, 2));
int failedNotificationIndex = -1;
SentNotification failedNotification = null;
//Try and find the failed notification in our sent list
for (int i = 0; i < sentNotifications.Count; i++)
{
var n = sentNotifications[i];
if (n.Identifier.Equals(identifier))
{
failedNotificationIndex = i;
failedNotification = n;
break;
}
}
基本的に、ペイロードをストリームに書き込んだ後、接続を閉じようとします。その間、APNサービスからの応答を期待します。これは通知識別子と呼ばれると思います。
デバイスをiPhoneデバイス構成ユーティリティに接続しましたが、コンソールに何も表示されないため、この通知を受信しないと思います。
私の質問は...
- それが期待しているこの識別子は何ですか?
- 私が間違っていることはありますか?
デバイスはiOS6を実行しています。ペイロードの構造は次のとおりです。
{"aps":{},"mdm":"80369651-5802-40A2-A0AE-FCCF02F99589"}
6バイトの返されたbyte[]の値は次のとおりです8,8,0,0,0,1