Reputation: 631
We have been using apple push notification service and we can send push message from gateway.sandbox.push.apple.com ,All I know this address is test, so we have to use real address gateway.push.apple.com, we can not send push message from this address. Could you help us?
Our code is;
public void pushMessage(string deviceID, string Mesaj)
{
int port = 2195;
String hostname = "gateway.sandbox.push.apple.com"; // TEST
//String hostname = "gateway.push.apple.com"; // REAL
// @"cert.p12";
String certificatePath = HttpContext.Current.Server.MapPath("cert.p12");
//X509Certificate2 clientCertificate = new X509Certificate2(certificatePath, "");
X509Certificate2 clientCertificate = new X509Certificate2(System.IO.File.ReadAllBytes(certificatePath), "", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
X509Certificate2Collection certificatesCollection = new X509Certificate2Collection(clientCertificate);
TcpClient client = new TcpClient(hostname, port);
SslStream sslStream = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
try
{
sslStream.AuthenticateAsClient(hostname, certificatesCollection, SslProtocols.Tls, true);
}
catch (Exception e)
{
throw (e);
client.Close();
return;
}
MemoryStream memoryStream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(memoryStream);
writer.Write((byte)0); //The command
writer.Write((byte)0); //The first byte of the deviceId length (big-endian first byte)
writer.Write((byte)32); //The deviceId length (big-endian second byte)
writer.Write(HexStringToByteArray(deviceID.ToUpper()));
String payload = "{\"aps\":{\"alert\":\"" + Mesaj + "\",\"badge\":0,\"sound\":\"default\"}}";
writer.Write((byte)0);
writer.Write((byte)payload.Length);
byte[] b1 = System.Text.Encoding.UTF8.GetBytes(payload);
writer.Write(b1);
writer.Flush();
byte[] array = memoryStream.ToArray();
sslStream.Write(array);
sslStream.Flush();
client.Close();
}
you can watch the video of the problem
Upvotes: 1
Views: 4477
Reputation: 2987
It sounds like you might be sending information to Apple just fine. This issue might be that your iOS build isn't using the production push notification server.
Make sure your build is either Ad Hoc or Distribution and not Development.
Creating and Downloading a Distribution Provisioning Profile
Upvotes: 2