我正在开发一个消息应用程序,我对如何将数据从服务器发送到客户端存在困难。服务器到客户端的消息传递是否依赖于APNS?
我正在使用中央服务器设计,其中客户端使用NSURLConnection
向服务器发送消息,服务器不保留和管理打开的套接字并且无法为其中一个客户端发送消息。因此,客户端使用计时器并每隔2秒查询一次服务器,以查看是否有新数据正在等待它们。
这种方法的问题是,轮询每2秒服务器似乎杀电池非常快,所以我想也许不是客户轮询服务器,以使用APNS *因此,当服务器有一些新信息 **对于客户端,服务器会向客户端发送推送通知* **,则客户端将从服务器获取数据。
*使用APNS - 如果客户端允许,客户端当然可以禁用此选项。所以我会检查每次应用程序进入前台时是否允许推送,如果不是,我会返回到投票方式。
** 新信息可以是从短信到服务器管理消息的任何内容。 (并且有很多管理消息...)
例如,在我的应用程序中,用户可以看到他们的朋友状态(在线/离线),因此如果user1和user2是朋友,并且user2只是将他的状态从联机更改为离线,那么服务器需要将这个新信息(admin message = user2_offline)发送给user1。
***推送通知服务器将是空的(没有数据/声音),它只是一个触发客户端来获取新的信息,所以如果一推被发送到客户端而客户端应用程序很近,他不会注意到任何事情。 (如果应用程序正在运行,那么它会从服务器获取新信息)
此方法是否适用于需要大量推送通知的大型消息应用程序?
为了更清楚我的主要问题是:
1.是APNS足够可靠的,我可以用它作为我的核心服务器到客户端的消息机制?
2.苹果是否会从我的服务器每天批准数千或数十万个推送通知?
看一看SocketIO(长轮询)你拥有投票机制。 – Till