2011-08-01 89 views
2

我想連接到蘋果的推送通知服務器發送通知,但我有一些問題連接。在我嘗試握手後,它顯示說我沒有連接。我沒有得到任何例外?這對我的證書不是問題,因爲我嘗試使用第三方庫和證書,並且我能夠毫無問題地推送。蘋果推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();