今天我们来说下怎么自己建一个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服务器相关推荐

  1. 检测苹果推送证书有效性

    写apple 推送程序,经常遇到发送失败或接收不到的问题. 以下收集了相关问题 转至http://www.haodaima.net/art/2420853 使用APNS 搭建苹果推送服务器错误:una ...

  2. Apple Push Notification Service(苹果推送服务)

    https://developer.apple.com/library/IOS/documentation/NetworkingInternet/Conceptual/RemoteNotificati ...

  3. ubuntu11.04上搭建Android推送服务器

    来自:http://download.csdn.net/download/johnny901114/4410546 查阅了一些网上关于Android上实现推送的文章 , 常用的实现方法有: 1.使用a ...

  4. 苹果推送消息服务(转)

    苹果推送消息服务 .NET 开源项目:https://github.com/Redth/APNS-Sharp Push的原理: Push 的工作机制可以简单的概括为下图 图中,Provider是指某个 ...

  5. 苹果推送通知服务(APNs)编程(转)详细步骤

    iPhone 对于应用程序在后台运行有诸多限制(除非你越狱).因此,当用户切换到其他程序后,原先的程序无法保持运行状态.对于那些需要保持持续连接状态的应用程序(比如社区网络应用),将不能收到实时的信息 ...

  6. 苹果推送通知办事教程 Apple Pushnb

    原文地址:(转)苹果推送通知办事教程 Apple Push Notification Services Tutorial 作者:浪友dans 苹果推送通知办事教程 Apple Push Notific ...

  7. 余承东硬刚iPhone11;苹果推送正式版iOS 13;Facebook总部发生员工跳楼自杀事件 | EA周报...

    EA周报 2019年9月20日 每周星期五7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 热点大事件 苹果推送正式版iOS 13,iOS 13.1发布日期提前至9月24日 9月 ...

  8. 小米华为苹果推送相关Nginx转发推送配置

    小米华为苹果推送相关Nginx转发推送配置## 标题 1.1推送类型及涉及的推送url 目前涉及到的推送类型包括: 1).APNS苹果推送 2).华为厂商推送 3).小米厂商推送 4).魅族厂商推送 ...

  9. 余承东硬刚 iPhone11;苹果推送正式版 iOS 13;php-nsq 3.4.3 线上稳定版发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

最新文章

  1. 性能测试vs负载测试vs压力测试
  2. 计算机视觉与深度学习 | 使用K均值聚类实现基于颜色的分割(matlab版)
  3. java nep_Java 9 揭秘(1. 入门介绍)
  4. getReadableDatabase() 和 getWritableDatabase()的区别
  5. request重定向_golang不想http自动处理重定向的解决方案
  6. 笨方法学python 习题42
  7. 冰河木马实验(V8.4)
  8. Python安装过程中出现“找不到指定的路径”的解决办法
  9. 今天买了正版的beyondcompare 4.0
  10. cad断点快捷键_CAD中打断于点的快捷键
  11. JavaPoet使用详解
  12. 黑马主播单场带货千万,抖音直播市场还有哪些新机遇?
  13. 戒梭先生:随笔|合格交易者要达到的三个境界
  14. TOM企业邮箱注册流程是什么,如何开通邮箱
  15. 移动硬盘加密方法加密后对硬盘读写的影响
  16. 神经网络入门(连载之一)
  17. 2019上半年信息系统项目管理师-综合知识(简练整理解析)
  18. 一个程序员老总的年终总结2010版 1
  19. 《那一天,那一月,那一年,那一世》-------仓央嘉措
  20. 泊一盏心灯,悠然前行

热门文章

  1. DDR3基本的读写测试,适用于verilog语言学习
  2. php商品浏览页面,jquery仿京东商品放大浏览页面_实例分享
  3. JAVA面试题2012(1)
  4. 作为一个平面设计师,该如何转变平面设计思维
  5. WinForm PrintDocument 进行打印标签
  6. Bypass-分流抢票
  7. nginx与react配合二级路由
  8. Android 磁场传感器 地磁倾角计算 SensorManager.getInclination方法
  9. gitee搭建个人博客教程
  10. 动手实现天气预报App(二)——显示天气信息