问题标签 [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.
ios - javapns 是否支持广播推送通知?
我用谷歌搜索了 javapns,没有任何迹象表明它支持广播扩散。让它支持广播有诀窍吗?
我现在正在使用此代码,并在调用中添加我所有可用的令牌:
java - mac中的javapns错误处理
我已经通过 PHP 服务器端服务完成了 APNS。它工作得很好。现在我尝试对 java 代码做同样的事情。我从以下 URL 找到了一个包:
https://code.google.com/p/javapns/downloads/list
当我尝试运行此代码时,出现以下错误:
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的设置以允许此类服务运行?
我几乎尝试了所有方法,发布了这个,因为我觉得这个问题真的很困扰。
先感谢您。
java - APNS 库 javapns - 会有新版本吗?
有谁知道 Apple 推送通知 java 库javapns什么时候会发布新版本?
我在问,因为它有一个给我们带来麻烦的错误。
它会导致 - 在极少数情况下 - 向同一用户发送两次推送通知,因为它假定发生了错误。
该问题似乎已经解决:
修复了自动重新发送功能中的错误,并在必要时添加了禁用它的选项
但那是Sep 29, 2014
,然而最后一个版本是Jan 2012
。所以有人知道他们是否想发布一个新版本吗?
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 。
java - 哪些场景会导致 APNS 推送通知失败?
我正在尝试为 APNS 推送通知建立重试机制。因此,我想收集在 APNS 推送期间失败的所有 apns 设备令牌。
到目前为止,我不确定我应该考虑重试哪些所有场景,因为永远不应重试无效的设备令牌。
如果 apns 端口被阻塞或 apns 服务器已关闭,重试也没有任何意义。
我已经浏览了 Apples 网站上的 APNS 文档。
请建议,当我需要重试 apns 推送时,所有失败情况都可能存在。
notifications - javapns 发送通知,但我收到任何东西
我可以发送通知而不会出现任何错误,但我的设备上什么也没有。我尝试了很多解决方案,但我不知道我还能做什么。
证书和令牌适用于 PHP... 配置:Java 1.8、Tomcat 7、Javapns 2.2
谢谢
代码
日志
ios - ios推送消息无法在后台接收
我是初学者用swift写IOS推送。它在应用程序在前台运行时有效,但在应用程序在后台或关闭时无效。顺便说一句,当应用程序处于后台或关闭时,我可以通过 APNS.newPayload().alertBody 接收警报消息。非常感谢你的帮助。
下面是我的服务器和 ios 代码。
iOS代码
服务器代码
我已经阅读了一些关于这个主题的问题,但我无法解决这个问题。
我已经尝试过下面 iOS 代码中的其他功能,但它不起作用。
我不知道如何实施。你能教我吗?非常感谢
感谢 pralthom 的帮助,我通过设置内容值 = 1 来解决问题。
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 文件。
注意:我在两台服务器中都使用相同的开发证书。
任何帮助将不胜感激。
ios - 如何防止数据库中的 APNS 设备令牌冗余
我正在为我的应用程序使用 apns 通知,为此我将 apns 设备令牌存储在我的 sql 数据库中。
问题是每次用户删除或安装应用程序时,它都会生成一个新的设备令牌并将其存储在数据库中,因为同一个用户可以拥有多个设备,我无法更新该用户的令牌并获得新记录创建的。这让同一设备和同一用户的许多记录。以后可能会导致性能问题。
请帮忙。如何解决为同一用户存储多个令牌的问题。