Frage

Ich möchte etwas Ähnliches wie den Facebook-/Gmail-Chat implementieren.Ich weiß, dass sie Comet & Jabber als Technologie verwenden.Aber ich bin über ein paar Dinge verwirrt.

  1. Brauche ich wirklich Jabber?Kann ich stattdessen eine einfache MySQL-Tabelle mit from, to, message, sent und recd verwenden?Gibt es Ineffizienzen bei der Verwendung von MySQL?Gibt es einen Leistungsverlust?

  2. Kann Comet mit regulären Webservern implementiert werden?Benötige ich spezielle Server?AFAIK, Apache+php kann nicht mit zu vielen offenen Verbindungen umgehen?Sollte ich einfache Abfragen verwenden? Hat das negative Auswirkungen auf mein System?Was kann ich auf normalen Webhosts sofort verwenden?(Denn wenn ich die Chat-App verkaufe, sollte sie für die meisten Leute funktionieren.)

  3. Welches ist (derzeit) der beste Weg, Comet zu implementieren?Ist der unendliche Iframe eine gute Idee?Kommt es nach einer Weile nicht zu einer PHP-Zeitüberschreitung?Wird es eine browserübergreifende Lösung sein oder muss ich ein paar hässliche Hacks schreiben?Wird das zu einer Serverlast führen?Was nutzen Gmail und Facebook für die ewige Verbindung?

War es hilfreich?

Lösung

Große Fragen, hoffentlich wird dies nicht im Stapel am Wochenende verloren gehen. Wenn Sie Flash-kirupa verwenden möchten hat eine gute Anleitung, wie PHP und Steckdosen zu verwenden. Soweit Komet geht, ich glaube, Sie irgendeine Art von Server-Implementierung haben müssen. Das ist etwa, wo mein schwaches Wissen endet jetzt.

Einfache Abfrage Beispiel (jquery + asp.net) http://trappedinhoth.blogspot.com/2009/04/ ajax-jquery-chat-demo.html

Kirupa Tutorial (php5-Buchsen + flash 8) http://www.kirupa.com/developer/flash8/php5sockets_flash8.htm

Open-Source-Flash-Chat-Client (google, viel mehr) https://blueimp.net/ajax/

Comet info http://cometdaily.com/

Ich antworte nicht wirklich Ihre Frage, die Sie zeigt nur, um mehr Ressourcen. Ich bin sehr neugierig, was andere beantworten.

Andere Tipps

  

Muss ich wirklich Jabber? Kann ich stattdessen   verwenden, um eine einfache MySQL-Tabelle mit aus,   an, Nachricht, gesendet und Erh? Gibt es   etwaige Ineffizienzen in mysql verwenden? ist   es ein Performance-Verlust?

Ja, Sie brauchen Jabber zu verwenden und nicht MySQL. Sie lesen können [Das Ende einer Ära der Architektur (Es ist Zeit für eine komplette Neufassung)] [1] von Stonebraker et al für die Details, warum ein RDBMS ist eine schlechte Passform.

  

Kann Komet verwenden implementiert regelmäßig   Web-Server? Muss ich einige haben   spezieller Server? ... Soll ich einfach nutzen   Polling, wird diese einen negativen   Wirkung auf meinem System? Was kann ich   out-of-the-box auf gewöhnlichen Webhoster?   Was tun gmail und Facebook-Anwendung für die ewig-Verbindung?

Comet ist ein bisschen ein nebulösen Begriff aber keine Sorgen machen. Sie benötigen keinen speziellen Server, sollten Sie nicht Abfrage verwenden. Sie können [BOSH] [2] -. Das ist auch das, was Facebook (und ich vermute, Gmail) verwendet

Verwenden [JSJaC] [3] (oder [meine Gabel auf Github] [4]) auf der Client-Seite und [ejabberd] [5] auf der Serverseite. Beide unterstützen [BOSH] [6] (und [XMPP über BOSH] [7]) bedeutet, dass Sie HTTP-Verbindungen zu Ihrem XMPP-Server direkt machen, Polling vermeiden und eine hohe Verkehrslasten verarbeiten.

Links für alle von ihnen sind unter http://delicious.com/petef/stackoverflow-843889

Ich denke, Jabber kann getrost als (Mutter-)Middleware konzipiert werden, während MySQL sicherlich ein (persistenter Speicher) Backend ist.Das sind also Äpfel und Orangen.

Angesichts der Grenzen, die aufgrund der ACID-Garantien eines RDMBS und seiner Skalierungseigenschaften bestehen, kann sich keine der Mega-Web2.0-Anwendungen für Echtzeitnachrichten auf RDBMS verlassen.(Denken Sie daran, Ihre SQL-Tabellen spontan zu partitionieren, um weitere Server hinzuzufügen, um einen Eindruck von nur einem der damit verbundenen Probleme zu bekommen.)

Der wichtigste Gesichtspunkt ist die Haltbarkeit der Nachrichten in Ihrem System.Sollen sie für immer oder nur während eines bestimmten Zeitfensters bestehen bleiben?Da es sich um eine Chat-Anwendung handelt, handelt es sich höchstwahrscheinlich um Letzteres.Warum nicht einen speicherbasierten Speicher anstelle eines RDBMS verwenden?

Warum sollten Sie Jabber verwenden?Nun, es handelt sich um eine Art Standard, sodass Sie in Zukunft die Interop-Möglichkeiten eröffnen werden, auch wenn dies zu diesem Zeitpunkt noch kein Problem darstellt.

Noch wichtiger ist, dass es sich um ein System handelt, das schon seit langer Zeit (in Zeiten des Internet-Hundes) ernsthaft weiterentwickelt wird, daher kann man mit Sicherheit davon ausgehen, dass es (bis jetzt) ​​ausgereifter ist und auch weiterhin ausgereift sein wird als alles, was Sie bisher entworfen haben Sie implementieren, debuggen und bereiten die Produktion im eigenen Haus vor.

Völlig ahnungslos über den Kometen, also kein Kommentar!

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