问题标签 [javapns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
167 浏览

ios - javapns 是否支持广播推送通知?

我用谷歌搜索了 javapns,没有任何迹象表明它支持广播扩散。让它支持广播有诀窍吗?

我现在正在使用此代码,并在调用中添加我所有可用的令牌:

0 投票
0 回答
56 浏览

java - mac中的javapns错误处理

我已经通过 PHP 服务器端服务完成了 APNS。它工作得很好。现在我尝试对 java 代码做同样的事情。我从以下 URL 找到了一个包:

https://code.google.com/p/javapns/downloads/list

当我尝试运行此代码时,出现以下错误:

0 投票
2 回答
241 浏览

spring-mvc - JavaAPNS 在本地运行,但不在 Centos 上

问题

我在 centos 上设置 Apple APNS 时遇到问题。我已经部署了我的 Apache Tomcat 并且工作正常。我也在使用 Javapns 发送推送消息。

我的推送通知在 Windows 上运行良好(在 Eclipse 和独立的 Apache 上)。但是一旦我将应用程序部署到服务器(centos 6)我得到错误: javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:找不到受信任的证书

正如我所说,我正在使用在 Windows 上完美运行的 p12 证书。但在 Centos 上没有运气。

环境:

具有 Spring 4 部署的 Web 应用程序的 Apache Tomcat。使用 Java 1.7.57 在 centos 6 上运行。当然使用 Javapns 来启动推送通知。而且我觉得值得一提的是我的P12证书是放在WEB-INF/certs/certificate.p12里面的。

- 我的网络服务器没有 SSL 证书。

我的问题:

  • 尽管 Javapns 文档指出 Javapns 旨在作为 Web 应用程序的一部分甚至独立工作,但我必须在服务器上修改任何特殊配置以允许我的服务运行吗?

  • 令我困惑的是,相同的 p12 证书在本地有效,但在 linux 上无效?

  • 这与服务器上的安全链有关吗?或Apache tomcat的设置以允许此类服务运行?

我几乎尝试了所有方法,发布了这个,因为我觉得这个问题真的很困扰。

先感谢您。

0 投票
1 回答
447 浏览

java - APNS 库 javapns - 会有新版本吗?

有谁知道 Apple 推送通知 java 库javapns什么时候会发布新版本?

我在问,因为它有一个给我们带来麻烦的错误。

问题 187 - 重新发送功能不正确

它会导致 - 在极少数情况下 - 向同一用户发送两次推送通知,因为它假定发生了错误。

该问题似乎已经解决:

修复了自动重新发送功能中的错误,并在必要时添加了禁用它的选项

但那是Sep 29, 2014,然而最后一个版本Jan 2012。所以有人知道他们是否想发布一个新版本吗?

0 投票
1 回答
1569 浏览

sockets - ssl socket write 给出连接重置异常

我正在尝试使用 javapns 库发送 ios 推送通知。该代码在 java 6 上运行良好,但在 java 7 上运行不正常。我正在尝试通过 java 代码 this.socket.getOutputStream().write(bytes); 但得到以下异常: -

2015-09-24 02:01:17,330 [LIST 模式下的 JavaPNS 分组通知线程] 错误 javapns.notification.PushNotificationManager (PushNotificationManager.java:496) - 交付错误 java.net.SocketException:在 java.net.SocketInputStream 处重置连接。 read(SocketInputStream.java:196) ~[?:1.7.0_79] at java.net.SocketInputStream.read(SocketInputStream.java:122) ~[?:1.7.0_79] at sun.security.ssl.InputRecord.readFully( InputRecord.java:442) ~[?:1.7.0_79] 在 sun.security.ssl.InputRecord.read(InputRecord.java:480) ~[?:1.7.0_79] 在 sun.security.ssl.SSLSocketImpl.readRecord( SSLSocketImpl.java:934) ~[?:1.7.0_79] 在 sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332) ~[?:1.7.0_79] 在 sun.security.ssl.SSLSocketImpl.writeRecord( SSLSocketImpl.java:709) ~[?:1.7.0_79] 在 sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122) ~[?:1.7.0_79] 在 java.io.OutputStream.write(OutputStream.java:75) ~[?:1.7.0_79]在 javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:464) [utils-1.0.jar:?] 在 javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:409) [utils-1.0.jar:?] 在 javapns .notification.transmission.NotificationThread.runList(NotificationThread.java:283) [utils-1.0.jar:?] at javapns.notification.transmission.NotificationThread.run(NotificationThread.java:254) [utils-1.0.jar:?]在 java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]write(OutputStream.java:75) ~[?:1.7.0_79] at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:464) [utils-1.0.jar:?] at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager .java:409) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.runList(NotificationThread.java:283) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.run (NotificationThread.java:254) [utils-1.0.jar:?] 在 java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]write(OutputStream.java:75) ~[?:1.7.0_79] at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:464) [utils-1.0.jar:?] at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager .java:409) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.runList(NotificationThread.java:283) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.run (NotificationThread.java:254) [utils-1.0.jar:?] 在 java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]409) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.runList(NotificationThread.java:283) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.run(NotificationThread. java:254) [utils-1.0.jar:?] 在 java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]409) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.runList(NotificationThread.java:283) [utils-1.0.jar:?] 在 javapns.notification.transmission.NotificationThread.run(NotificationThread. java:254) [utils-1.0.jar:?] 在 java.lang.Thread.run(Thread.java:745) [?:1.7.0_79]

以下是我的 ssl 调试日志:-

编辑:当我打印这个 SSLSession

// 返回此连接使用的 SSL 会话。这些可以长期存在,并且经常对应于某些用户的整个登录会话。session 指定了一个特定的密码套件,该密码套件被该会话中的所有连接主动使用,以及会话的客户端和服务器的身份。如有必要,此方法将启动初始握手,然后阻塞直到握手建立。如果在初始握手期间发生错误,则此方法返回一个无效会话对象,该对象报告“SSL_NULL_WITH_NULL_NULL”的无效密码套件。

System.out.println(session.getLocalCertificates()); // 我得到了 null 而在 java 6 中使用相同的证书我没有得到 null 。

0 投票
0 回答
431 浏览

java - 哪些场景会导致 APNS 推送通知失败?

我正在尝试为 APNS 推送通知建立重试机制。因此,我想收集在 APNS 推送期间失败的所有 apns 设备令牌。

到目前为止,我不确定我应该考虑重试哪些所有场景,因为永远不应重试无效的设备令牌。

如果 apns 端口被阻塞或 apns 服务器已关闭,重试也没有任何意义。

我已经浏览了 Apples 网站上的 APNS 文档。

请建议,当我需要重试 apns 推送时,所有失败情况都可能存在。

0 投票
1 回答
581 浏览

notifications - javapns 发送通知,但我收到任何东西

我可以发送通知而不会出现任何错误,但我的设备上什么也没有。我尝试了很多解决方案,但我不知道我还能做什么。

证书和令牌适用于 PHP... 配置:Java 1.8、Tomcat 7、Javapns 2.2

谢谢

代码

日志

0 投票
1 回答
756 浏览

ios - ios推送消息无法在后台接收

我是初学者用swift写IOS推送。它在应用程序在前台运行时有效,但在应用程序在后台或关闭时无效。顺便说一句,当应用程序处于后台或关闭时,我可以通过 APNS.newPayload().alertBody 接收警报消息。非常感谢你的帮助。

下面是我的服务器和 ios 代码。

iOS代码

服务器代码

我已经阅读了一些关于这个主题的问题,但我无法解决这个问题。

我已经尝试过下面 iOS 代码中的其他功能,但它不起作用。

APNS 推送在前台而不是后台工作

我不知道如何实施。你能教我吗?非常感谢

感谢 pralthom 的帮助,我通过设置内容值 = 1 来解决问题。

参考 APN后台刷新,设置AppDelegate.m

0 投票
1 回答
366 浏览

push-notification - 在 iOS 中接收推送通知的问题

我在接收来自 2 个不同服务器的推送通知时遇到了一些问题。服务器的后端代码是用 Java 编写的,我使用javapns了用于苹果推送通知的库。当我收到通知(来自其中一台服务器)时,我收到以下日志语句,

2015-11-06/12:17:15.829 [DEBUG] [] [javapns.notification.Payload] - 添加警报 [警报消息]

2015-11-06/12:17:16.054 [调试] [] [javapns.communication.ConnectionToAppleServer] -Creating SSLSocketFactory

2015-11-06/12:17:16.127 [调试] [] [javapns.communication.ConnectionToAppleServer] -Creating SSLSocket to gateway.sandbox.push.apple.com:2195

2015-11-06/12:17:16.776 [调试] [] [javapns.notification.PushNotificationManager] -Initialized Connection to Host: [gateway.sandbox.push.apple.com] Port: [2195]: 6644621c[SSL_NULL_WITH_NULL_NULL: Socket[addr=gateway.sandbox.push.apple.com/17.172.232.45,port=2195,localport=57181]]

2015-11-06/12:17:16.778 [调试] [] [javapns.notification.PushNotificationManager] -Building Raw message from deviceToken and payload

2015-11-06/12:17:16.779 [调试] [] [javapns.notification.PushNotificationManager] -Built raw message ID 1 of total length 91

2015-11-06/12:17:16.779 [调试] [] [javapns.notification.PushNotificationManager] -Attempting to send notification: {"aps":{"alert":"Alert Message"}}

2015-11-06/12:17:16.779 [调试] [] [javapns.notification.PushNotificationManager] - to device: e61aa2adfa16449f894b317ea3b4dbbfe4589000abdec7c8c0eb3c7b92654e4c

2015-11-06/12:17:17.696 [调试] [] [javapns.notification.PushNotificationManager] -Flushing

2015-11-06/12:17:17.696 [调试] [] [javapns.notification.PushNotificationManager] -At this point, the entire 91-bytes message has been streamed out successfully through the SSL connection

2015-11-06/12:17:17.696 [调试] [] [javapns.notification.PushNotificationManager] -Notification sent on first attempt

2015-11-06/12:17:17.696 [DEBUG] [] [javapns.notification.PushNotificationManager] - 阅读回复

2015-11-06/12:17:22.698 [DEBUG] [] [javapns.notification.PushNotificationManager] - 关闭连接

但是,当我没有收到通知(来自另一台服务器)时,我得到以下日志,

2015-11-20/13:37:50.539 [DEBUG] [] [javapns.notification.Payload] - 添加警报 [警报消息]

2015-11-20/13:37:50.543 [DEBUG] [] [javapns.notification.PushNotificationManager] - 阅读回复

2015-11-20/13:37:50.545 [DEBUG] [] [javapns.notification.PushNotificationManager] - 关闭连接

在这里,我没有收到任何有关创建 SSL 套接字工厂或其他突出显示的文本的日志语句。并且ConnectionToAppleServer课程没有被调用。所以,我怀疑我是否缺少任何 jar 文件。

注意:我在两台服务器中都使用相同的开发证书。

任何帮助将不胜感激。

0 投票
1 回答
611 浏览

ios - 如何防止数据库中的 APNS 设备令牌冗余

我正在为我的应用程序使用 apns 通知,为此我将 apns 设备令牌存储在我的 sql 数据库中。

问题是每次用户删除或安装应用程序时,它都会生成一个新的设备令牌并将其存储在数据库中,因为同一个用户可以拥有多个设备,我无法更新该用户的令牌并获得新记录创建的。这让同一设备和同一用户的许多记录。以后可能会导致性能问题。

请帮忙。如何解决为同一用户存储多个令牌的问题。