2011-08-01 8 views
2

알림을 보내려면 Apple의 푸시 알림 서버에 연결하려고하는데 연결하는 데 문제가 있습니다. 내가 핸드 셰이크를 시도한 후에, 나는 그것이 연결되어 있지 않다는 것을 보여줍니다. 나는 예외가 없습니까? 제 3 자 라이브러리를 인증서와 함께 사용해 보았으므로 문제없이 푸시 할 수 있었기 때문에 인증서에 문제가 없습니다.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

앱에서 직접 연결 하시겠습니까? 나는 당신이 애플과 애플 사이에 man-in-the-middle 서버를 가져야한다고 확신한다. – Moshe

+0

이것은 사과에 연결하는 서버입니다. 페이로드가 사과에게 전송되어 알림을 장치로 보냅니다. – user629126

답변

0

항상 false를 반환하지만 아무런 문제없이 통신 할 수있었습니다. boolean connected = socket.isConnected();

관련 문제