Iphone推送通知问题

Iphone推送通知问题,iphone,notifications,push,Iphone,Notifications,Push,我正在处理iphone推送通知。我可以获得我的设备令牌。我使用.net来推送json数据。但问题是我不能得到通知。我只是想知道.net是否必须在托管机器中推送json数据 问候,, 萨提斯我认为这与: 通读其中链接的项目。这是相当全面的。你可以直接使用这个库。。。非常好 除非我误解了这个问题?使用以下代码段发送推送通知 public void pending通知(string DeviceToken,string message) { 尝试 { int端口=2195; //显影剂 字符串ho

我正在处理iphone推送通知。我可以获得我的设备令牌。我使用.net来推送json数据。但问题是我不能得到通知。我只是想知道.net是否必须在托管机器中推送json数据

问候,,
萨提斯

我认为这与:

通读其中链接的项目。这是相当全面的。你可以直接使用这个库。。。非常好


除非我误解了这个问题?

使用以下代码段发送推送通知

public void pending通知(string DeviceToken,string message)
{
尝试
{
int端口=2195;
//显影剂
字符串hostname=“gateway.sandbox.push.apple.com”;
//生产
//字符串hostname=“gateway.push.apple.com”;
字符串证书password=“XXXXXXX”;
字符串certificatePath=Server.MapPath(“~/cer.p12”);
TcpClient client=新的TcpClient(主机名、端口);
X509Certificate2 clientCertificate=新的X509Certificate2(System.IO.File.ReadAllBytes(certificatePath),certificatePassword);
X509Certificate2Collection certificatesCollection=新的X509Certificate2Collection(客户端证书);
SslStream SslStream=新的SslStream(client.GetStream(),false,新的RemoteCertificateValidationCallback(ValidateServerCertificate),null);
sslStream.authenticatesclient(主机名、证书集合、SslProtocols.Tls、false);
//字符串DeviceToken=“xxxxxxxxxxx”;
字符串LoginName=“Name”;
int Counter=1;//徽章计数;
字符串消息=消息;
String UID=“您的选择UID”;
字符串有效载荷=“{\“aps\”:{\“警报\”:\“+消息+”,\“徽章\”:“+计数器+”,\“声音\”:“默认值”},\“UID\”:\“+UID+”,\“登录名”:\“+LoginName+“\”}”;
MemoryStream MemoryStream=新的MemoryStream();
BinaryWriter=新的BinaryWriter(memoryStream);
writer.Write((字节)0);
writer.Write((字节)0);
writer.Write((字节)32);
Write(HexStringToByteArray(DeviceToken.ToUpper());
writer.Write((字节)0);
writer.Write((字节)有效负载.Length);
byte[]b1=System.Text.Encoding.UTF8.GetBytes(有效负载);
writer.Write(b1);
writer.Flush();
字节[]数组=memoryStream.ToArray();
sslStream.Write(数组);
}
捕获(例外情况除外)
{
//响应。写入(例如消息);
}
}
公共静态字节[]HexStringToByteArray(字符串十六进制)
{
返回可枚举的范围(0,十六进制长度)
。其中(x=>x%2==0)
.Select(x=>Convert.ToByte(十六进制子字符串(x,2,16))
.ToArray();
}
公共静态bool ValidateServerCertificate(对象发送方、X509Certificate证书、X509Chain链、SslPolicyErrors SslPolicyErrors)
{
如果(sslPolicyErrors==sslPolicyErrors.None)
返回true;
WriteLine(“证书错误:{0}”,sslPolicyErrors);
返回false;

}
hi ginamin感谢您的回复。我使用的代码来自,但它说成功发送正确的设备令牌和pem文件。但问题是,我在测试ipod touch时没有通知它。您需要使用设备令牌来标识将向哪个设备发送推送。.pem文件是您的SSL密钥文件。所有这些都是用来创建一个与苹果推送服务器流。推送向导:也许我不明白。。。您的通知格式正确,但设备未接收推送?听起来你的设备令牌不正确。