问题标签 [apple-push-notifications]

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 投票
2 回答
22858 浏览

php - 使用 APNS PHP 获取错误

这是我正在使用的代码

我得到了这些错误

警告:stream_socket_client() [function.stream-socket-client]: Unable to set private key file `apns-dev.pem' in /home/bryan/sendpush.php on line 14

警告:stream_socket_client() [function.stream-socket-client]:未能在第 14 行的 /home/bryan/sendpush.php 中创建 SSL 句柄

警告:stream_socket_client() [function.stream-socket-client]:无法在第 14 行的 /home/bryan/sendpush.php 中启用加密

警告:stream_socket_client() [function.stream-socket-client]: 无法连接到第 14 行 /home/bryan/sendpush.php 中的 ssl://gateway.sandbox.push.apple.com:2195(未知错误)

警告:fwrite():提供的参数不是第 17 行 /home/bryan/sendpush.php 中的有效流资源

警告:socket_close() 期望参数 1 是资源,布尔值在第 19 行的 /home/bryan/sendpush.php 中给出

警告:fclose():提供的参数不是第 20 行 /home/bryan/sendpush.php 中的有效流资源

实际上我现在把它归结为这些错误

警告:stream_socket_client() [function.stream-socket-client]:SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14094410:SSL 例程:SSL3_READ_BYTES:sslv3 警报握手失败在 /home/bryan/PushService.php 在线27

警告:stream_socket_client() [function.stream-socket-client]:无法在第 27 行的 /home/bryan/PushService.php 中启用加密

警告:stream_socket_client() [function.stream-socket-client]: 无法在线连接到 /home/bryan/PushService.php 中的 ssl://gateway.sandbox.push.apple.com:2195 (未知错误)

0 投票
1 回答
2695 浏览

iphone - iPhone APNS 沙盒与尚未批准的应用程序的生产

在应用程序被批准进入应用程序商店之前,生产 APNS 是否不可用?我可以很好地使用沙盒证书,但生产没有结果。

0 投票
2 回答
25929 浏览

iphone - 沙盒与生产中的 iPhone APNS 设备令牌

设备令牌如何从沙盒模式到生产模式变化?

我想我已经将一些设备令牌锁定为生产模式,并且无法将它们从开发中推送。

关于如何检查的任何想法?

0 投票
2 回答
22310 浏览

push-notification - 传入 Apple 推送通知的端口号

需要在网络上打开哪些网络服务、端口号、传出传入或两者,以便 ipod touch 接收 Apple 推送通知?

我知道发送 apns 时要设置的传出端口号。唯一的问题是,在我的学校里,几乎每个传出(和传入)端口都被阻塞,因此 APN 不起作用。我敢肯定,如果我与网络管理员交谈并告诉他要解锁哪个端口,他会这样做。所以我的问题是:需要在网络上打开哪些网络服务、端口号、传出传入或两者,以便 ipod touch 接收 Apple 推送通知?

0 投票
2 回答
10134 浏览

mysql - 如何使用 Objective C 将推送通知和其他用户设置的设备令牌发送到服务器上的 sql 表

理想情况下,我想使用 POST 向推送通知服务器发送一个 HTTP 请求,其中包含设备令牌以及一些用户定义的设置。从那里我可以在服务器上设置一个 php 脚本来处理传入的数据并将其输入到一个 sql 表中。如果这是唯一的方法,我将如何从 Objective C 发起 HTTP 请求?

0 投票
0 回答
226 浏览

iphone - iPhone推送通知连接频率

苹果的文档状态

您还应该跨多个通知保留与 APN 的连接。(APN 可能会将快速且反复建立和拆除的连接视为拒绝服务攻击。)

这在实践中意味着什么?您多久可以打开和关闭连接?您是否应该始终保持 APNs 和服务器之间的连接,即使您没有要发送的内容?

0 投票
3 回答
3153 浏览

iphone - 如果稍后启动,没有 APNS 启动选项?

我的 APNS 通知工作正常,但我注意到一个奇怪的行为,我想要求确认。

我在“didFinishLaunchingWithOptions”或“didReceiveRemoteNotification”期间检索通知有效负载。在“didFinishLaunchingWithOptions”中,我正在检查

以导出参数。在“didReceiveRemoteNotification”中,apsInfo 派生自 NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];

这工作正常,有一个例外:如果我忽略通知弹出窗口并点击“关闭”而不是“查看”并最终稍后从启动板启动我的应用程序,则不再有 apsInfo。这是“设计”吗?通知信息是否仅在点击“查看”或从通知信息对话框启动应用程序时可用?

问候

0 投票
3 回答
11721 浏览

java - Java 套接字和断开的连接

检测套接字是否被丢弃的最合适的方法是什么?或者一个数据包是否真的被发送了?

我有一个库,用于通过 Apple 网关(在 GitHub 上可用)向 iPhone 发送 Apple 推送通知。客户端需要打开一个套接字并发送每条消息的二进制表示;但不幸的是,Apple 没有返回任何确认。该连接也可以重复用于发送多条消息。我正在使用简单的 Java Socket 连接。相关代码为:

在某些情况下,如果在发送消息时或之前断开连接;Socket.getOutputStream().write()虽然成功完成。我预计这是由于 TCP 窗口尚未耗尽。

有没有办法可以确定一个数据包是否真的进入了网络?我尝试了以下两种解决方案:

  1. socket.getInputStream().read()插入具有 250 毫秒超时的附加操作。这会强制执行在连接断开时失败的读取操作,否则会挂起 250 毫秒。

  2. 将 TCP 发送缓冲区大小(例如Socket.setSendBufferSize())设置为消息二进制大小。

这两种方法都有效,但它们显着降低了服务质量;吞吐量从每秒 100 条消息到最多大约 10 条消息/秒。

有什么建议么?

更新:

受到质疑所描述的可能性的多个答案的挑战。我构建了我所描述的行为的“单元”测试。在Gist 273786查看单元案例。

两个单元测试都有两个线程,一个服务器和一个客户端。服务器在客户端发送数据时关闭,但无论如何都不会抛出 IOException。下面是主要方法:

[顺便说一句,我还有一个并发测试库,它使设置更好更清晰。也可以在 gist 处查看示例]。

运行时,我得到以下输出:

0 投票
2 回答
1183 浏览

iphone - Apple Push Notification Service - 通知消息不会发送到 iPhone 设备

我使用 C# 构建了提供程序代码,它能够成功地将通知消息发送到 iphone 设备。但从昨天开始,它一直没有奏效。此外,它似乎成功连接 APNS 并发送通知消息。不幸的是,iphone 设备没有收到通知消息。我控制了 iphone 设备的互联网连接和设备令牌。我还可以做些什么?提前致谢...

0 投票
4 回答
5208 浏览

c# - 使用 iPhone Apple 推送通知提供程序 (apns-sharp) 时出现 SslStream.AuthenticateAsClient 异常

使用 Apple 推送通知提供程序 (apns-sharp) 时,我收到以下异常。

推送通知在我的开发机器上工作,但在 Rackspace 云托管中不起作用。我有与我的开发人员一起运行的确切 Rackspace Cloud 自定义中等信任配置。机器,所以中等信任在这里不是问题。此外,证书文件也不是问题,因为它适用于我的开发人员。机器。

有任何想法吗?

更新 #1:这是否与可能不在Rackspace 云服务器上的 Entrust 根服务器有关?我检查了 apns-sharp 代码,看起来它忽略了证书验证,但我不是 100% 确定。