服务器端APN推送代理后面的通知

时间:2015-07-21 14:10:44

标签: apple-push-notifications firewall iptables

我需要使用服务器的控制面板发送推送通知。

服务器是一个位于代理后面的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. APN是否可以与代理一起使用?
  3. 这个库是否能够或连接到代理服务器后面?

2 个答案:

答案 0 :(得分:1)

回答你的第3个问题,无论如何都会解决前两个问题。 NotNoop Java-Apns绝对支持代理。

请参阅提供的{/ 3}}

提供的Java文档
指定用于建立与Apple Servers的连接的代理

在您的代码中,您可以按照以下内容

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

现在库本身将通过代理连接

答案 1 :(得分:0)

是您APNS客户端无法连接到该机器的APNS服务器。请从运行应用程序的计算机上测试与APNS服务器的TCP连接。您可以使用nc命令测试从Linux机箱到APNS服务器的连接。是APNS与代理无关,因为APNS连接在TCP上工作。如果您可以将防火墙配置为连接到APNS,那么它应该可以正常工作。

nc apns_server_host apns_server_port