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

时间:2014-01-26 00:08:35

标签: ios objective-c networking ruby-on-rails-4

示例:

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

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

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

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

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

是否更好:

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

1 个答案:

答案 0 :(得分:2)

我认为关键是通过利用单个联系信息进行搜索而不是使用姓名,号码和电子邮件地址来缩小请求。如果您的服务需要任何这些部分进行注册,例如电话号码,请仅使用电话号码。当您从服务器返回信息时,请不要发送任何您不需要的信息,例如您找不到匹配的电话号码。

其次,如果您拥有技术诀窍,那么您的选择#3并不是一个坏主意。我推荐一个名为SocketRocket的库。它是由制作Square的人开发的,可以很容易地在前端实现websockets。

我不能说你的后端,但我使用node.js和这个包:https://github.com/einaros/ws非常容易安装(npm install ws)并且也很容易使用。