博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS使用新的HTTP2 api测试推送,APNs推送的测试工具
阅读量:4316 次
发布时间:2019-06-06

本文共 2512 字,大约阅读时间需要 8 分钟。

目录

工具项目地址

github

https://github.com/wardenlym/apns2-test

工具安装

参考项目描述编译安装即可工具(很简单,直接make就可以)

如有报错,根据错误提示解决即可。
我编译时遇到autoconf版本低(2.63)导致编译失败的问题,后面升级下autoconf就好了,我是升级到2.68

工具使用介绍

用法

最简用法,只有2个必须参数: 证书,要推送设备的token。

./apns2-test -cert <cert.pem> -token

然后设备就会收到一条 "apns2 test." 的默认测试信息。

可选参数

-dev 开发环境,默认推生产环境

-debug 详细的日志了连接过程和HTTP请求过程
-topic 不填的话,从证书里面取UID,默认就是应用的bundle-id
-message 自定义一个消息内容,比较常用,替换的是alert字段
example: -message "abc test."
-payload 如果你对payload中的字段需要详细的指定,这个选项跟-message冲突,不应该同时设置(废话。。。),如果都设置,以-payload为准。
example: -payload '{"aps":{"alert":"payload test.","sound":"default"}}'

还有些没什么太大用的选项,但也留出来方便些:

-uri 如果你有特别的代理,可以用来替换苹果默认的域名,这个如果设置了,默认覆盖生产开发选项。你指定哪个地址就推哪个。

-port 如果你要设定端口,默认苹果端口是2197
-prefix 这个一般不用改吧。协议里的header前缀 /3/device/
-pkey 如果需要指定一个私钥文件,正常来说,证书与私钥都在一个pem文件里。默认都从pem里面读取

效果

debug效果

[root@local-vm apns2-test]# ./apns2-test -cert /tmp/test_dev.pem -token 167f86c48b3418cbe45ff3bfe51f4d504df456d1110a77de0dfb5576294b758e -debug -dev6 -devnotBefore : 190225060336ZnotAfter  : 200225060336ZUID = com.test [23]apns2-test version: 0.1.1nghttp2 version: 1.9.0-DEVtls/ssl version: TLSv1.2ns looking up ...connecting to : 17.188.165.219socket connect ok: fd=3, host: api.development.push.apple.com:2197Enter PEM pass phrase:ssl allocation okssl handshaking ...Connected with encryption: ECDHE-RSA-AES256-GCM-SHA384ssl handshake ok[INFO] Stream ID = 1[INFO] C ----------------------------> S (HEADERS):method: POST:path: /3/device/167f86c48b3418cbe45ff3bfe51f4d504df456d1110a77de0dfb5576294b758eapns-topic: com.test[INFO] C ----------------------------> S (DATA post body){"aps":{"alert":"apns2 test.","sound":"default"}}[INFO] C <---------------------------- S (HEADERS begin):status: 200apns-id: D63E10AF-D391-9958-6C70-92CC5759204B[INFO] C <---------------------------- S (HEADERS end)[INFO] C ----------------------------> S (GOAWAY)over.

debug消息如上,能看到

  • {"aps":{"alert":"apns2 test.","sound":"default"}}
    推送的消息内容,可以用message参数指定
  • :status: 200 (推送结果,对照如下)
Status code Description
200 Success
400 Bad request
403 There was an error with the certificate or with the provider authentication token
405 The request used a bad :method value. Only POST requests are supported.
410 The device token is no longer active for the topic.
413 The notification payload was too large.
429 The server received too many requests for the same device token.
500 Internal server error
503 The server is shutting down and unavailable.

结束

项目中有时排查推送问题,自己单个推送调试排查问题还是很不错的

转载于:https://www.cnblogs.com/JaminXie/p/11098597.html

你可能感兴趣的文章
【MM系列】在SAP里查看数据的方法
查看>>
C#——winform
查看>>
CSS3 transform制作的漂亮的滚动式导航
查看>>
《小强升职记——时间管理故事书》读书笔记
查看>>
Alpha 冲刺(3/10)
查看>>
Kaldi中的Chain模型
查看>>
spring中的ResourceBundleMessageSource使用和测试示例
查看>>
css规范 - bem
查看>>
UVALive 6145 Version Controlled IDE(可持久化treap、rope)
查看>>
mysql 将两个有主键的表合并到一起
查看>>
底部导航栏-----FragmentTabHost
查看>>
在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
查看>>
apk,task,android:process与android:sharedUserId的区别
查看>>
前端实现文件的断点续传
查看>>
转:spring4.0之二:@Configuration的使用
查看>>
【Android开发】交互界面布局详解
查看>>
状态机编程思想(1):括号内外字符串统计
查看>>
K-Means聚类和EM算法复习总结
查看>>
[转]Bat脚本处理ftp超强案例解说
查看>>
P3901 数列找不同
查看>>