2015-07-21 80 views
0

我需要使用服務器的控制面板發送推送通知。服務器端APN推送代理後的通知

服務器是位於代理之後的Linux虛擬雲框。控制面板使用專門J2EE和Tomcat

我使用的基於JAVA的https://github.com/notnoop/java-apns/releases API推送

代碼

ApnsService service = APNS.newService().withSandboxDestination().withCert("mycert.p12", "mypassword").build(); 
String messageTobeSent = APNS.newPayload() 
    .alertBody("Message with badge 2") 
    .badge(2) 
    .alertTitle("Message with badge 2") 
    .sound("ding.wav") 
    .build(); 
service.push("d81f0080ed7bf05ac96261dc1805fbf00230073f606f1388a644469b1893446f", messageTobeSent, new Date()); 

我得到一個錯誤無法連接到服務器APNS,我的問題是

  1. 這是因爲代理?
  2. APNs是否與代理一起使用?
  3. 此庫能夠或連接代理後面嗎?

回答

1

回答您將regardlessly解決前兩個問題第3題。 NotNoop Java-Apns絕對支持代理。

請參考Java文檔提供ApnsServiceBuilder withProxy(java.net.Proxy)

指定代理將用於建立連接到蘋果服務器

在你的代碼,你可以把如下

ApnsService service = APNS 
.newService() 
.withSandboxDestination() 
.withProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("<your proxy host>", <your proxy port>))) 
.build(); 

現在庫本身將通過代理連接

+0

哦!這很簡單,現在正在工作,謝謝! – Dickens

+0

沒有道具,很高興這是有幫助的 –

0

是您APNS客戶端無法連接到該機器的APNS服務器。請從運行應用程序的機器測試TCP連接到APNS服務器。您可以使用nc命令從您的linux機箱測試與APNS服務器的連接。是的,APNS與代理無關,因爲APNS可以通過TCP進行連接。如果你可以配置你的防火牆連接到APNS,那麼它應該工作。

NC apns_server_host apns_server_port