Skip to content

dragonflylxp/ios-pushserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APNs消息推送服务

APNs推送原理

  • 当应用服务提供商推送消息给用户时,应用服务提供商与用户设备之间是苹果的APNs服务,负责统一接收并转发消息.
  • APNs通过设备码唯一标识一个用户,实现消息投递.
  • APNs有一定的断线率,一旦某个消息发送失败会自动忽略后面的消息,直到应用服务提供商重连APNs.
  • 对于不可触达的用户设备,APNs提供feedback供应用服务提供商剔除掉这些目标用户.
  • 推送速度不可太快,APNs会认为是DDos攻击

服务结构

  • 生产者线程从上游队列(redis)拉取消息,放入一个循环队(CQueue),供消费者线程发送给APNs
  • 多进程管理多个应用渠道,不同渠道苹果证书不同.
  • 总体架构图如下: 总体架构
  • 循环队列处理失败消息回溯:
    -----------|--------------|------------|----|-----------|---------
    ...ready   |              |  succ      | F  | resend    | ready...
    -----------|--------------|------------|----|-----------|---------
               |              |              |              |
             rear           frontL          fail           frontR

About

APNs消息发送服务

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages