Frage

Ich habe einen einfachen chat-server, dass ist angetrieben durch client-polling.Clients senden Anfragen nach Daten, die alle paar Sekunden auf, und übergeben alle neuen Nachrichten, sowie Informationen darüber, ob Ihre peer-noch immer verbunden.

Da der client läuft auf einer mobilen Plattform (iPhone) ich habe auf der Suche nach Möglichkeiten, loszuwerden, das Abfragen, die schnell entlädt sich der Akku.Ich habe gelesen, dass es möglich ist, halten Sie eine http-Verbindung unbegrenzt offen, aber noch nicht verstanden wie man diese Technik nutzen in der Praxis.Ich bin auch gefragt, ob solche verbindungen sind stabil genug, um in eine mobile Einstellung.

Das ideale Szenario wäre, dass der server sendet nur Daten für clients, wenn eine Veranstaltung, die Sie betreffen, aufgetreten ist (z.B. ein peer eine Nachricht oder off line).

Ist es ratsam zu versuchen, dies zu erreichen-über-http -, oder müsste ich Schreibe mein eigenes Protokoll über tcp?Wie schwer wäre es, um anpassen, xmpp, um mein Bedürfnis (chat-server hat einige spezielle features, die ich haben würde, um einfach zu implementieren).

War es hilfreich?

Lösung

Wie wäre es Push-Technologie? finden Sie unter http://en.wikipedia.org/wiki/Comet_(programming)

Andere Tipps

Ich glaube, Sie XMPP über BOSH sind zu beschreiben.

http://xmpp.org/extensions/xep-0206.html

Ich habe diese http-Bindungsmethode zwischen einem Chat-Server und JavaScript-Client auf nicht-mobilen Geräten verwendet. Es funktionierte gut für mich.

Vielleicht möchten Sie dieses Projekt welches verwendet eine Vielzahl von Techniken, einschließlich Comet. Details sind hier loslassen , hier ist ein Ausschnitt aus dieser Seite

  

Es ist mir eine große Freude, der Lage sein,   die erste öffentliche Vorführung ankündigen   ein Projekt, das ich gearbeitet habe   in meiner Freizeit im letzten Monat oder   zwei, eine neue Web-basierte Chat   Anwendung.

     

Dieses Projekt bringt eine Menge zusammen   neue Technologien, die sein musste   entwickelt dies ein gangbarer zu machen,   skalierbar und effizient.

     

Einige der zugrunde liegenden Werkzeuge bauen   machen diese posible, die ich berücksichtigen   ‚Stabil genug‘ sind bereits erschienen,   wie die PHP Socket-Daemon Bibliothek   i schrieb der Lage sein, zu behandeln   Hunderte bis zu vielen tausend   „Comet“ http-Verbindungen und eine gleiche   Menge der IRC-Client-Verbindungen.

ich gerade gefunden dieser Artikel ich, die folgende Technik beschreibt (die ich in der Vorlagefrage):

  

... haben den Client eine HTTP-Anforderung machen   und haben den Server halten die Anfrage   in der Warteschlange, bis eine Nachricht vorhanden ist   drücken. wenn die TCP / IP-Verbindung ist   verloren oder mal-out, wird der Client   macht eine neue HTTP-Anforderung, und die Verzögerung   wird nur die Umlaufzeit für eine sein   Anfrage / Antwort-Paar. . . dieses Model   effektiv erfordert zwei TCP / IP   Verbindungen für HTTP, Client   Server, wenn keine dauerhafte und   daher mobil freundlich

Ich denke, dies ist fast unmöglich und zu gefährlich.Das internet arbeitet zustandslos und verbindungslos bedeutet, dass die Verbindung zwischen client und server wird immer so behandelt, als unzuverlässig.Und diese ist nicht für Spaß.

Durch den Versuch, einen stateful-Verbindung Sie stellen neue Fragen.Vor allem von einem 3g-Anwendung.Was ist, wenn die Verbindung abbricht?Sie haben keine Kontrolle über den server und kann nicht schieben.

Ich denke, es wäre sogar einfacher sein, senden Sie sms/text-Nachrichten und eine Anwendung haben, die Griffe, die.

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