Frage

Ich möchte implementieren einer skalierbaren chatroom in rails mit AJAX.Ich weiß aus der Forschung, dass die einzige Skalierbarkeit passiert mit einem server-side-push.

Meine zwei Fragen sind:

1) In eine halbwegs effiziente chat-server, an welchem Punkt hört polling unerschwinglich werden?2) ich weiß wirklich nicht wollen, zu Juggernaut.Ich weiß nicht viel darüber, wie Kometen funktioniert.Ich denke, ich Frage mich, ob dies wäre furchtbar schwierig für mich zu bauen, die mithilfe von Javascript (zum erstellen von client-Seite, server/poller) und eine weitere Fremdsprache (eine effiziente polling für clients hinter einer firewall, und eine integration in die CGI).und 3) (ja, aus 2), ob ich auch über Sie gehen den richtigen Weg?

Die einfachste Antwort, die ich hoffen konnte, ist eine quantifizierte "ja, setzen Sie 5 Zeilen Javascript-Code in der client-und 20 Linien von ruby in ein CGI-script und nennen es einen Tag".

War es hilfreich?

Lösung

Wenn es so einfach zu tun, die Leute würden nicht gebaut haben, die diese Technologien.IMHO ich denke, polling ist immer ein gehen, ein hacky Weg, es zu tun.Das Sagte....

Ich bin nicht sicher, warum Juggernaut ist aus den Karten, die Einen Kerl einen arbeiten für den Einbau dieser Website 64Squares mit es und funktioniert Super.

Ich kenne andere Websites wie WeeWar verwenden Sie den polling-Methode und haben Sie nach oben oder 400 Anfrage eine Min.Also, ich denke, es würde eine ganze Zeit dauern bis die Skalierung wurde jedoch zu einem Problem.

Viel Glück

Cheers

Andere Tipps

Ich bin versucht, das gleiche zu tun, gerade jetzt.Juggernaut gut funktioniert, aber nicht für Rails 3, und wenn, dass ist nicht eine Anforderung, dann schlage ich vor, es zu benutzen, weil es ist tot einfach zu machen, ein chat.Mein Projekt verwendet Rails 3, und fragt den server alle 3 Sekunden(Lagerfeuer macht-3-als auch).Ich bin mit Schienen aus Metall zu machen das polling super schnell.Wenn Sie verwenden möchten, Juggernaut, dann große, 2 Linien von der client-Seite js, und 1 oder 2 der server-Seite.Ansonsten, an die Arbeit!

ja, Sie setzen 5 Zeilen Javascript-Code in der client-und 20 Linien von ruby in ein CGI-script und nennen es einen Tag

COMET Werke, indem Sie die Verbindung zum server öffnen Sie in Javascript (es gibt viele Beispiele auf, wie man diese async-Daten auf dem KOMETEN website).Der server im wesentlichen schreibt die Daten raus und spült es, dies kann getan werden, mit einem Mutex in einer engen Schleife.Sie werden wahrscheinlich auch brauchen, eine Warteschlange von Arten.

Es könnte besser kennen zu lernen BOSH in die lange laufen.Es ist die Natürliche Entwicklung von KOMETEN.

Obwohl Juggernaut hat eine Lernkurve (oder es nicht wirklich), lernen, wie man KOMET ist ein steiler ein.Auch nur async-pushen ist schwerer.Nicht nur das, sondern Sie müssen dann betrachten Sie, wie zu machen es gut skalieren.Ich habe noch nie verwendet, Juggernaut, aber so weit wie ROR plugins gehen ich nehme an, es ist trivial.Und wenn Sie herausfinden, wie zu machen es besser skaliert werden können, erhalten Sie schnellere Leistung für Sie kostenlos.

Polling ist eine weitere Optionen, die technisch der Arbeit aus einfacher, jedoch, ich bin leidenschaftlich über die nicht-Verwendung abrufen, wie es kann töten Ihre server - also werde ich nicht weiter drauf ein, da ich hier das Gefühl, dass polling lazy route.

Was ist Lagerfeuer?Es fragt den server alle 5 Sekunden.Funktioniert wie ein Traum.

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