Strategie für schnelle IOS-Kontakte "Friend Finder" [geschlossen]

8

Beispiel:

  • Snapchat - Freunde hinzufügen (aus Telefonkontakten)
  • Twitter - Finde Freunde (aus Telefonkontakten)

Ich habe keine Probleme, Namen, Telefonnummern und E-Mail-Adressen aus den Kontakten des IOS-Geräts zu extrahieren. Ich habe mit verschiedenen Ansätzen und Strategien experimentiert:

  • Laden Sie Kontakte zum Webserver hoch
  • Vergleichen Sie die Liste mit der Server-Datenbank unter Verwendung von Telefonnummern und E-Mail-Adressen (nicht notwendig, um eine Kopie zu speichern)
  • Gibt eine Liste der Kontakte zurück, die auch Benutzer sind und nicht
  • sind

Meine Versuche dauern ungefähr 30 bis 45 Sekunden für 500 Kontakte. Die gleiche Gruppe von Kontakten dauert ungefähr 2 bis 5 Sekunden, um mit Snapchat oder Twitter zu arbeiten.

Was ist ihr Geheimnis? Gute Obj-c-Codierung? Gutes Datenbankdesign? Ich weiß es zu schätzen, dass sie sehr effiziente Hosting-Stacks haben würden, aber ich habe keinen solchen Zeitunterschied erwartet.

Ist es besser zu:

  1. Probieren Sie einen Bulk-Upload aller Kontakte aus und geben Sie eine json-Zeichenfolge mit Treffern und Fehlern zurück.
  2. Eine einzelne HTTP-Anfrage für jedes?
  3. Öffnen Sie eine Art dauerhafte Verbindung wie eine WebSocket, um jeden Kontakt zu überprüfen?
  4. Eine andere offensichtliche Strategie oder Vorgehensweise, über die ich noch nicht nachgedacht habe?
chabber 26.01.2014, 00:08
quelle

1 Antwort

2

Ich denke, der Schlüssel besteht darin, die Anfrage kleiner zu machen, indem für die Suche nur eine einzige Kontaktinformation verwendet wird, anstatt Namen, Nummern und E-Mail-Adressen zu verwenden. Wenn für Ihren Dienst eines dieser Elemente zur Anmeldung erforderlich ist, z. B. die Telefonnummer, verwenden Sie nur die Telefonnummer. Wenn Sie Informationen von Ihrem Server zurücksenden, senden Sie nichts, was Sie nicht benötigen, wie die Telefonnummern, für die Sie keine Übereinstimmung finden.

Zweitens ist Ihre Option # 3 keine schlechte Idee, wenn Sie das technische Know-how haben. Ich empfehle eine Bibliothek namens SocketRocket . Es wurde von den Leuten entwickelt, die Square machen und macht die Implementierung von WebSockets auf Ihrem Front-End sehr einfach.

Ich kann nicht mit Ihrem Backend sprechen, aber ich benutze node.js und dieses Paket: Ссылка Sehr einfach zu installieren ( npm install ws ) und auch einfach zu bedienen.

    
daltonclaybrook 26.01.2014, 00:39
quelle