我的服务器是一个 REST 平台(使用 asp.net MVC 4 web api 构建),我的客户端是 ios 应用程序(当然是在 Objective-c 中)。目前,对于所有操作,客户端使用 http POST、GET、PUT、DELETE 查询服务器。但是有一种情况是服务器需要通知客户端发生了一些事情。
Apple 方式是推送通知,当用户为应用程序授权推送通知时可以,但即使用户关闭推送通知,我也需要通知应用程序(当它在前台时)。
现在有两种方法可以做到:
- 客户端每隔几秒查询一次服务器(在 http GET 中)是否发生了什么事(我们到了吗?我们到了吗?:)
- 客户端以某种方式打开到服务器的套接字并将其保持打开状态,等待服务器通过打开的会话通知它发生了某些事情。
那么你建议做什么?1 还是 2?还是有第三种方法?如果选项 2 有人可以引导我如何有效地做到这一点?考虑到我的应用程序应该处理超过 100,000 个活跃用户?
谢谢