我正在尝试使用Erlang向APN发送推送通知.这是我到目前为止提出的代码:
-module(apnstest2).
-export([connect/0]).
connect() ->
application:start(ssl),
ssl:seed("someseedstring"),
Address = "gateway.sandbox.push.apple.com",
Port = 2195,
Cert = "/path/to/Certificate.pem",
Key = "/path/to/Key.unenc.pem",
Options = [{certfile, Cert}, {keyfile, Key}, {mode, binary}],
Timeout = 1000,
{ok, Socket} = ssl:connect(Address, Port, Options, Timeout),
Token = "195ec05a962b24954693c0b638b6216579a0d1d74b3e1c6f534c6f8fd0d50d03",
Payload = "{\"aps\":{\"alert\":\"Just testing.\",\"sound\":\"chime\", \"badge\":10}}",
TokenLength = length(Token),
PayloadLength = length(Payload),
Packet = [<<0:8, TokenLength, Token, PayloadLength, Payload>>],
ssl:send(Socket, list_to_binary(Packet)),
ssl:close(Socket).
Run Code Online (Sandbox Code Playgroud)
代码没有利用Erlang的并发性,但只是一个原型.我只想测试是否可以以最简单的方式发送推送.
我认为问题在于发送到APN的数据包.这是推送通知的二进制格式:
我应该如何在Erlang中创建这样的数据包?有人可以看看我的代码并告诉我问题出在哪里?
我还使用Erlang的SSL应用程序来创建连接并发送数据,我不知道这是问题还是数据包.
谢谢!
大家好,我想通过我的PhoneGap容器收到Apple推送通知.现在有人如果已经实施了吗?
非常感谢
iphone push push-notification apple-push-notifications cordova
像许多公司一样,我工作的那个公司不习惯使用Apple的APNS:没有官方图书馆,随机截断的流等等...... Android的推送系统也是如此:限于小批量,完全不同于Apple的APNS ...这就是为什么我们正在寻找替代方案,当亚马逊声称能够几乎免费发送数百万推送通知时,我们认为SNS将是完美的解决方案.
问题是我们经常有超过一百万台设备需要解决,显然我们的推送活动很少针对相同的设备.就我们挖掘而言,唯一的解决方案是使用AWS API,它只提供一种方法来一次创建一个端点!这对我们来说是一件大事,因为经过一些测试,我们认为为了创建1 000 000个端点,需要大约15小时(约17个呼叫/秒).
即使在创建了所有端点之后,为了立即发送所有推送,需要将端点添加到主题中,并且再次,这必须一次完成一个端点(因此再多15个小时).事件,如果我们多线程我们的电话让我们说30个线程,它仍然需要一个小时!
那么,有人能告诉我们是否有任何错过的东西吗?亚马逊是否真的希望我们在30小时内充斥他们的网络服务以创建一个推送活动?如果花费数小时准备,他们怎么能假装一秒钟发送一百万次?他们是否正在为SNS开发批处理API?是否可以插入包含令牌的Amazon DB来提供SNS主题?
performance push-notification amazon-web-services apple-push-notifications amazon-sns
我正处于iPhone应用程序的规划阶段,由于其可扩展性功能,我正在考虑将Google App Engine用于我的服务器组件.
推送通知使用二进制接口发送到gateway.push.apple.com:2195.
但是,服务器的JRE只允许使用以下标准类,不包括Socket类.可以URLConnection用某种方式来做到这一点?
考虑到Google App Engine应用程序的限制,有没有办法实现推送通知?
如果可能的话,我想避免使用AppNotify或UrbanAirship等第三方服务.
iphone google-app-engine push-notification apple-push-notifications
我想向基于iOS的设备发送推送通知,但我不想编写自己的应用程序.根据我目前收集的内容,要使用Apple推送通知服务发送推送通知,我需要使用用于签署应用程序的SSL证书.
基本上,我正在寻找的是iOS相当于Notify My Android,这是一款安装在Android设备上的应用程序,它具有带简单HTTP API的Web服务,用于发送通知.
组,
我计划将我自己的服务器推送通知服务器实现到Android/IOS应用程序.因此,我的应用程序服务器(可以通过NodeJ实现)将联系该Notification Server以将消息推送到设备.所以我通过互联网浏览并找到了以下现有的解决方案.
谷歌云消息传递
Apple推送通知服务
Firefox os推送通知
Microsoft推送通知服务
Q1)
在各自的网站上; 他们只是告知如何使用他们的通知服务器.但是我需要有关他们如何实现服务器推送的信息.
请告诉我; 他们是否遵循以下任何一项?
轮询
长期民意调查
流
服务器已发送事件
与客户端的TLS,SSL或TCP套接字连接
XMPP
Q2)
以下两种方法声称虽然我的应用程序没有运行; 他们仍然可以向APP发送通知吗?怎么可能?
Apple推送通知服务
Firefox os推送通知
Q3)
在Firefox os推送通知; 他们已经告知他们正在避免保持活力以节省电池寿命.我的问题是没有keep-alive如何确定连接是否仍然存在?
Q4)
所有这些(GCM/APNS/FireFox OS)实现只是服务器端推送,并且不接受来自客户端的请求.我对么?
所以我的服务器仍然需要处理推送消息以外的数百万设备请求,对吗?
如果我在自己的通知服务器和客户端设备之间使用websocket,我是否需要在我的应用服务器和客户端之间再保持一个websocket连接以接收来自设备的请求?
我在Ruby中发送HTTP/2 POST请求时发现了一个类似的问题 但是我想用PHP更新我的服务器
此处描述了基于HTTP/2的新Apple推送通知API:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html
任何具有HTTP/2经验的人都可以帮助我在PHP中作为客户端发出请求.
在iOS 9中,是否有我可以阅读的系统级回调告诉我用户是否在推送通知请求上点击了"不允许"?
我通过自定义屏幕提示用户,告知他们推送通知及其在我的应用中的价值.
他们有两个选择,是或否.如果他们选择是,我请求操作系统进行推送通知,他们会看到如下图所示的弹出窗口.
现在,如果用户点击YES,则会有一个函数调用didRegisterForRemoteNotificationsWithDeviceToken,告诉我此设备已注册推送通知.我可以使用它来进入下一个屏幕(并在注册后将它们带入第一个屏幕)
但是,如何检测用户是否点击不允许?我需要知道,所以我可以相应地将用户移动到下一个屏幕(并在注册后将它们带入第一个屏幕).didFailToRegisterForRemoteNotificationsWithError如果用户点击"不允许",则不会调用该函数.
这个问题不重复,因为该问题的答案是针对iOS 7的,因为我的问题是具体的iOS 9.
我正在实施新的iOS10扩展以使用丰富的通知.我试图在推送通知上测试它但不工作,我只是收到一个简单的通知,而不是通过扩展.
我做了官方网站和其他一些地方指定的所有内容:
正如我所说,我收到通知但从未通过扩展.我看到操作系统如何尝试加载扩展但随后抛出一个没有相关描述的错误来识别问题:
Dec 31 21:00:00 iPhone SpringBoard(libextension.dylib)[51] <Notice>: calling plugIn beginUsing:
Dec 31 21:00:57 iPhone pkd[86] <Notice>: assigning plug-in com.test.app.NotificationWithAttachmentExtension(1.0) to plugin sandbox
Dec 31 21:03:57 iPhone pkd[86] <Notice>: enabling pid=51 for plug-in com.test.app.NotificationWithAttachmentExtension(1.0) 38BB5FF1-2597-42E0-B950-169DBFA80573 /private/var/containers/Bundle/Application/A8C47706-C0EC-4FB1-ABA7-0118372F6900/testapp.app/PlugIns/NotificationWithAttachmentExtension.appex
Dec 31 21:00:53 iPhone SpringBoard(PlugInKit)[51] <Notice>: plugin com.test.app.NotificationWithAttachmentExtension interrupted
Dec 31 21:03:56 iPhone SpringBoard(PlugInKit)[51] <Notice>: Hub connection error Error Domain=NSCocoaErrorDomain Code=4097 "connection to service named com.test.app.NotificationWithAttachmentExtension" UserInfo={NSDebugDescription=connection to service named com.test.app.NotificationWithAttachmentExtension}
Jun 29 13:33:36 iPhone SpringBoard(libextension.dylib)[51] <Notice>: PlugInKit …Run Code Online (Sandbox Code Playgroud) 我开发local Notifications了iOS 10.它工作得很好.但现在我应该如何编码local notifications,push notification如果用户正在使用iOS 9及以上版本.有人可以帮忙吗?
下面是代码 iOS 10
import UIKit
import UserNotifications
@available(iOS 10.0, *)
class ViewController: UIViewController,UNUserNotificationCenterDelegate {
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 10.0, *) {
//Seeking permission of the user to display app notifications
UNUserNotificationCenter.current().requestAuthorization(options: [.alert,.sound,.badge], completionHandler: {didAllow,Error in })
UNUserNotificationCenter.current().delegate = self
}
}
//To display notifications when app is running inforeground
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> …Run Code Online (Sandbox Code Playgroud) ios ×5
iphone ×2
push ×2
amazon-sns ×1
android ×1
binary ×1
cordova ×1
curl ×1
erlang ×1
http2 ×1
ios10 ×1
objective-c ×1
performance ×1
php ×1
swift ×1