30 votes

C# iPhone push server ?

J'essaie d'écrire un serveur push pour l'iPhone en C#. J'ai le code suivant :

        // Create a TCP/IP client socket.
        using (TcpClient client = new TcpClient())
        {
            client.Connect("gateway.sandbox.push.apple.com", 2195);
            using (NetworkStream networkStream = client.GetStream())
            {
                Console.WriteLine("Client connected.");

                X509Certificate clientCertificate = new X509Certificate(@"certfile.p12", passwordHere);
                X509CertificateCollection clientCertificateCollection = new X509CertificateCollection(new X509Certificate[1] { clientCertificate });

                // Create an SSL stream that will close the client's stream.
                SslStream sslStream = new SslStream(
                    client.GetStream(),
                    false,
                    new RemoteCertificateValidationCallback(ValidateServerCertificate),
                    null
                    );

                try
                {
                    sslStream.AuthenticateAsClient("gateway.sandbox.push.apple.com");
                }
                catch (AuthenticationException e)
                {
                    Console.WriteLine("Exception: {0}", e.Message);
                    if (e.InnerException != null)
                    {
                        Console.WriteLine("Inner exception: {0}", e.InnerException.Message);
                    }
                    Console.WriteLine("Authentication failed - closing the connection.");
                    client.Close();
                    return;
                }
            }

ect....

Seulement, je continue à recevoir une exception : "Un appel à SSPI a échoué, voir exception interne". Inner Exception -> "Le message reçu était inattendu ou mal formaté".

Quelqu'un a-t-il une idée de ce qui ne va pas ici ?

0voto

muhammad kashif Points 1296

Dans mon cas, j'ai dû supprimer tous les certificats de mon Windows 8, puis les réinstaller afin d'envoyer des notifications push à l'appareil Apple.

Je ne sais pas pourquoi mes certificats cessent de fonctionner, je cherche la bonne raison et je ferai une mise à jour ici bientôt.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X