2010-03-26 125 views
7

Apple推送使用TCP或UDP将消息从其服务器传递到设备吗?Apple推送通知服务使用UDP还是TCP?

+1

文档说明了这一切。小心看一下? – zneak 2010-03-26 01:15:29

+0

标题包含语法错误。也许两个。我很高兴你补充说明。 – intuited 2010-03-26 01:15:53

+0

更新的问题来澄清。苹果文档不会覆盖堆栈的这一端。 – lolsborn 2010-03-26 01:56:20

回答

9

Apple Push Notification Service Programming Guide

重要:无线网络用于推 通知仅如果没有 蜂窝连接,或者如果设备 是一部iPod touch。通过WiFi接收 通知,该设备的 显示器必须是对(即,它不能 是睡觉),或者它必须插入。 的WiFi发射必须是 出站的TCP端口5223,并且必须是 内有效范围。

也:

沙盒环境和生产环境

开发和部署客户端 - 服务器应用程序的提供者 侧, 你必须从 iPhone开发人员计划门户的SSL证书。每个 证书仅限于一个 应用程序,由其包 ID标识。每个证书也只限于 两个发展 环境之一,每个都有自己的 分配的IP地址:

沙箱:沙盒环境是用于初始开发和提供应用程序的 测试 。 它提供了与生产环境 相同的一组服务 ,尽管服务器单元的数量较少 。沙盒环境 也作为一个虚拟设备,使模拟的端到端测试成为可能。您 在 gateway.sandbox.push.apple.com, 站TCP端口访问沙箱环境2195

生产:构建提供者 应用的 生产版本时,使用的生产 环境。使用 生产环境的应用程序必须符合苹果的可靠性要求 。您 在 gateway.push.apple.com,出站TCP访问生产环境 端口2195

最后:

通用提供者要求

正如你可以沟通提供商 通过 二进制界面的Apple推送通知服务。这个接口是一个 高速,大容量接口 供应商;它使用流式TCP 套接字设计和 二进制内容。二进制接口 是异步的。

生产 环境的二进制接口可通过 gateway.push.apple.com,端口2195;沙盒 (开发)环境的 二进制接口可用 通过 gateway.sandbox.push.apple.com,端口 2195您可能会建立到同一 网关或多个网关 实例的多个并行连接。

+0

尽管第一部分明确表示他们使用TCP。最后两个是从你的服务器两个苹果,而不是从苹果到设备。 – lolsborn 2010-03-26 06:11:40

+0

Apple也将端口5223列为TCP在其众所周知的端口列表中:http://support.apple.com/kb/TS1629该列表用于Mac FaceTime等的推送通知,但推测它使用相同的协议。 – Cata 2011-11-05 21:23:14