自己动手搭建苹果推送Push服务器
今天我们来说下怎么自己建一个Push推送服务器, 当然还是用的苹果的APNS 这里我们讲的的自己服务器端的实现
在做推送服务器之前我们要先做一些准备动作
#1. 确保你的App ID有启用PushNotifications
这个可以在你的开发者账号中心里面看看你的App ID的Push Notification是否为Enable
如果不是的话就点Edit设置并创建自己的证书, 具体怎么设置和创建证书大家可以看:
http://www.fx114.net/qa-202-108331.aspx
按照上面做完后, 我们把自己的推送证书下载下来, 如果是开发证书下载的名字应该是:aps_development.cer
双击安装, 然后在钥匙串中找到他并导出为p12格式, 这里我们取名: DevelopPush.p12
好了现在我们有一个cer证书跟一个p12文件,
现在我们要用openssl来合成PEM证书, 应为python apns要用PEM格式证书
在终端输入openssl试试看, 如果报错的话就安装一下
sudo easy_install pyOpenSSL
合成PEM证书
1)转换公钥
openssl x509 -in aps_developer.cer -inform der -out public.pem
2)转换私钥
openssl pkcs12 -nocerts -in DevelopPush.p12 -out private.pem
(这时候要输入密码的)
有了这两个pem文件其实就可以测试一下能否连通苹果的服务器了,网上有,就简写了
telnet gateway.sandbox.push.apple.com 2195 (测试是否能连通苹果的推送测试服务器)
Trying 17.172.232.226... Connected to gateway.sandbox.push-apple.com.akadns.net. Escape character is '^]'.
要是出现上面的结果就ok了,然后测试刚才的两个pem:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert public.pem -key private.pem
输完密码之后,要是输出一堆提示信息就算是ok了
下面我们开始准备写推送服务器
首先安装apns
sudo easy_install apns
然后在证书的路径下创建一个pushservice.py, 代码如下:
import time from apns import APNs, Frame, Payload apns = APNs(use_sandbox=True, cert_file='public.pem', key_file='private.pem') # Send a notification token_hex = 'aefa14337e084a6423529dd262f36de607a019529f4a0a4e2b5e5ae885dec578' payload = Payload(alert="Hello World!", sound="default", badge=1) apns.gateway_server.send_notification(token_hex, payload)
执行看看, 如果客户端没有收到通知的话就检查以下三点
1. 证书是否正确, 重新下载aps_developement.cer试试看
2. 手机设置中通知功能是否有打开
3. 项目中以下部分是否有打开
目前我们已经实现了推送一个alert, 剩下的我们下次再看看
自己动手搭建苹果推送Push服务器相关推荐
- 检测苹果推送证书有效性
写apple 推送程序,经常遇到发送失败或接收不到的问题. 以下收集了相关问题 转至http://www.haodaima.net/art/2420853 使用APNS 搭建苹果推送服务器错误:una ...
- Apple Push Notification Service(苹果推送服务)
https://developer.apple.com/library/IOS/documentation/NetworkingInternet/Conceptual/RemoteNotificati ...
- ubuntu11.04上搭建Android推送服务器
来自:http://download.csdn.net/download/johnny901114/4410546 查阅了一些网上关于Android上实现推送的文章 , 常用的实现方法有: 1.使用a ...
- 苹果推送消息服务(转)
苹果推送消息服务 .NET 开源项目:https://github.com/Redth/APNS-Sharp Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个 ...
- 苹果推送通知服务(APNs)编程(转)详细步骤
iPhone 对于应用程序在后台运行有诸多限制(除非你越狱).因此,当用户切换到其他程序后,原先的程序无法保持运行状态.对于那些需要保持持续连接状态的应用程序(比如社区网络应用),将不能收到实时的信息 ...
- 苹果推送通知办事教程 Apple Pushnb
原文地址:(转)苹果推送通知办事教程 Apple Push Notification Services Tutorial 作者:浪友dans 苹果推送通知办事教程 Apple Push Notific ...
- 余承东硬刚iPhone11;苹果推送正式版iOS 13;Facebook总部发生员工跳楼自杀事件 | EA周报...
EA周报 2019年9月20日 每周星期五7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 热点大事件 苹果推送正式版iOS 13,iOS 13.1发布日期提前至9月24日 9月 ...
- 小米华为苹果推送相关Nginx转发推送配置
小米华为苹果推送相关Nginx转发推送配置## 标题 1.1推送类型及涉及的推送url 目前涉及到的推送类型包括: 1).APNS苹果推送 2).华为厂商推送 3).小米厂商推送 4).魅族厂商推送 ...
- 余承东硬刚 iPhone11;苹果推送正式版 iOS 13;php-nsq 3.4.3 线上稳定版发布 | 极客头条...
快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...
最新文章
- 性能测试vs负载测试vs压力测试
- 计算机视觉与深度学习 | 使用K均值聚类实现基于颜色的分割(matlab版)
- java nep_Java 9 揭秘(1. 入门介绍)
- getReadableDatabase() 和 getWritableDatabase()的区别
- request重定向_golang不想http自动处理重定向的解决方案
- 笨方法学python 习题42
- 冰河木马实验(V8.4)
- Python安装过程中出现“找不到指定的路径”的解决办法
- 今天买了正版的beyondcompare 4.0
- cad断点快捷键_CAD中打断于点的快捷键
- JavaPoet使用详解
- 黑马主播单场带货千万,抖音直播市场还有哪些新机遇?
- 戒梭先生:随笔|合格交易者要达到的三个境界
- TOM企业邮箱注册流程是什么,如何开通邮箱
- 移动硬盘加密方法加密后对硬盘读写的影响
- 神经网络入门(连载之一)
- 2019上半年信息系统项目管理师-综合知识(简练整理解析)
- 一个程序员老总的年终总结2010版 1
- 《那一天,那一月,那一年,那一世》-------仓央嘉措
- 泊一盏心灯,悠然前行