快速IOS联系策略"朋友发现者"

cha*_*ber 9 networking objective-c ios ruby-on-rails-4

例:

  • Snapchat - 添加好友(来自手机联系人)
  • 推特 - 寻找朋友(来自手机联系人)

从IOS设备联系人中提取姓名,电话号码,电子邮件地址没有问题.我一直在尝试不同的方法和策略:

  • 将联系人上传到Web服务器
  • 使用电话号码和电子邮件地址将列表与服务器数据库进行比较(无需存储副本)
  • 返回同时也是用户和非用户的联系人列表

对于500个联系人,我的尝试大约需要30-45秒.对于Snapchat或twitter来说,同一组联系人大约需要2-5秒.

他们的秘密是什么?好的obj-c编码?好的数据库设计?我很欣赏他们会有高效的托管堆栈,但我并不期待那种时差.

是否更好:

  1. 尝试批量上传所有联系人并返回带有命中和未命中的json字符串.
  2. 每个单独的HTTP请求?
  3. 打开像websocket这样的持久连接来检查每个联系人?
  4. 我还没有考虑过其他一些明显的策略或方法吗?

dal*_*ook 2

我认为关键是通过使用一条联系信息进行搜索而不是使用姓名、号码和电子邮件地址来减少请求。如果您的服务需要任何这些信息(例如电话号码)进行注册,请仅使用电话号码。当您从服务器返回信息时,请勿发送任何不需要的内容,例如找不到匹配的电话号码。

其次,如果您拥有技术知识,那么您的选项#3并不是一个坏主意。我推荐一个名为SocketRocket的库。它是由 Square 的开发者开发的,使得在前端实现 websocket 变得非常容易。

我无法与您的后端交谈,但我使用 node.js 和这个包:https://github.com/einaros/ws非常容易安装 ( npm install ws) 并且也易于使用。

  • 如果有人需要,我可以发布更详细的描述,介绍我的 Objective-C 客户端方法以及 MySQL 和 Rails 4 服务器端方法。 (5认同)