2011-08-01 16 views
2

アップルのプッシュ通知サーバーに接続して通知を送信しようとしていますが、接続に問題があります。私が握手を試みた後、それは私が接続されていないと言うことを示しています。私は何の例外もありませんか?私の証明書に問題はありません。なぜなら、証明書付きの第三者図書館を使用しようとしたため、問題なくプッシュすることができたからです。AppleプッシュAPNS接続

int port = 2195; 
String hostname = "gateway.sandbox.push.apple.com"; 
char[] passwKey = "password".toCharArray(); 

KeyStore ts = KeyStore.getInstance("PKCS12"); 
ts.load(new FileInputStream("/path/to/file/Cert.p12"), passwKey); 
KeyManagerFactory tmf = KeyManagerFactory.getInstance("SunX509"); 
tmf.init(ts, passwKey); 

SSLContext sslContext = SSLContext.getInstance("TLS"); 
sslContext.init(tmf.getKeyManagers(), null, null); 
SSLSocketFactory factory = sslContext.getSocketFactory(); 

SSLSocket socket = (SSLSocket) factory.createSocket(hostname,port); 
String[] suites = socket.getSupportedCipherSuites(); 
socket.setEnabledCipherSuites(suites); 
//start handshake 
socket.startHandshake(); 

//THIS ALWAYS RETURNS FALSE 
boolean connected = socket.isConnected(); 
+1

なぜあなたの見出しで叫んでいますか?これは丁寧ではありません。 – dasdom

+0

アプリから直接接続していますか?私はあなたのアプリとAppleの間にman-in-the-middleサーバを持つ必要があると確信しています。 – Moshe

+0

これはリンゴに接続しているサーバで、リンゴにペイロードが送信され、通知がデバイスに送信されます。 – user629126

答えて

0

これは常にfalseを返しますが、問題なく通信できました。 boolean connected = socket.isConnected();