Frage

Ich arbeite an einer Chat-Anwendung auf dem iPhone (Anforderungen an einen Server verbinden). Das Sendepaket von iPhone sollte kein Problem sein.

Aber ich möchte wissen, ob es möglich ist, für das iPhone eine eingehende Socket-Verbindung zum Server kontinuierlich oder für immer unter mobilen Umgebung zu schaffen.

oder was brauche ich, um die Verbindung am Leben zu geben, zu tun? Notwendigkeit, etwas zu senden über sie es am Leben zu halten?

Danke.

War es hilfreich?

Lösung

Nicht sicher, warum Sie im Chat App haben wollen persistente Verbindung haben ... würde ich eine bessere Nutzung SMS wie Modell. Wie auch immer, auf NSSocket Cocoa NSStream basiert und ermöglicht eine Vielzahl von Funktionen. Werfen Sie einen Blick auf sie.

Antwort auf die Frage. Hier ist auf den Punkt gebracht, was ich tun würde:

  1. Holen Sie sich einen Authentifizierungs-Token vom Server.
    • dies wird auch Pflege der Anwesenheit des Benutzers, wenn nötig, aber jetzt reden wir über den Zustand; einmal Anwesenheit bekannt ist, dass der Server senden können Benachrichtigungen an Kunden aktiv sind und einen Benutzer auf ihrer Kontaktliste haben.
  2. Get Benutzerkontaktliste und Kontaktanwesenheitsstatus.
  3. Wenn eine Nachricht senden, behandeln sie nach Adressat Zustand, das heißt, wenn online, kommunizieren zurück an den anderen Benutzer, wenn offline, Warteschlange für eine spätere Lieferung oder abzulehnen.
  4. Sobald Token abgelaufen ist, lehnen die Kommunikation mit den entsprechenden Fehler und den Client machen ein neues Token anzufordern.

Kommunikation vom Server zum Client kann auf Pull oder Push-Modell basieren. Im ersten Fall macht Client periodisch eine Anfrage und holt alle Meldungen. Das kann nicht gut klingen, aber in Wirklichkeit, wie oft Benutzer komponieren und Senden von Nachrichten? Mehrmals pro Minute? Das ist nicht zu viel. So holt alle 5-10 Sekunden passieren kann.

Für Push-Modell-Client muss in der Lage sein, Verbindungen zu hören und zu akzeptieren.

Schließlich Besuche SIP, Session Initiation Protocol. Keine Notwendigkeit, obwohl die Vollversion zu verwenden. Nur grundlegende Dinge.

Das ist sehr rau und vielleicht vereinfacht. Ich weiß nicht, das Ziel Komplexität Ihrer Chat-System. Zum Beispiel kann die einfachste Sache auch, dass Server sein kann nur Client zu Client-Kommunikation durch die Verteilung ihrer Endpunkte und Kunden alles selbst kümmern.

Viel Glück!

Andere Tipps

Super veraltet Antwort, aber vielleicht wird es die nächste Person helfen.

Ich würde xmppframework und einen Jabber-Server verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top