2015-07-21 56 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