2009-06-25 9 views
3

Ich habe gehört, dass Web-basierte Chat-Clients neigen dazu, Netzwerk-Frameworks wie die verdrehten Rahmen zu verwenden.Ist es möglich, einen webbasierten Chat-Client ohne ein Socket-basiertes Framework zu erstellen?

Aber wäre es möglich, einen Web-basierten Chat-Client ohne ein Netzwerk-Framework zu erstellen - mit nur Ajax Verbindungen?

Ich möchte einen sitzungsbasierten 1: 1-Web-Chat-Client erstellen, der Sitzungen verwendet, um anzuzeigen, wann ein Chat beendet wurde. Wäre das in Rails nur mit Ajax und ohne Netzwerkrahmen möglich?

Welchen Effekt hat es, ein Netzwerk-Framework zu verwenden und welchen Einfluss hätte es auf meine App, um eines nicht zu verwenden? Auch allgemeine Empfehlungen für die Annäherung an dieses Projekt wären willkommen.

Antwort

5

Wenn ich Sie richtig verstehe, möchten Sie, dass die Clients sich mit Ihrem Server verbinden und sich gegenseitig über AJAX über den Server miteinander kommunizieren. Dies ist möglich, es gibt zwei Ansätze, dies zu tun.

Der einfache Ansatz besteht darin, dass beide Clients alle paar Sekunden eine Abfrage durchführen, um nach neuen Nachrichten zu suchen, die von dem anderen gesendet wurden. Nachteil ist, dass die Nachrichten nicht sofort geliefert werden. Ich denke, das ist ein Beispiel in der rails book gefunden.

Der komplexere Ansatz besteht darin, eine offene Verbindung aufrechtzuerhalten und die Nachrichten an den Client zu senden, sobald sie vom Server empfangen werden. Um dies zu tun, können Sie etwas wie Juggernaut

verwenden Ich möchte hinzufügen, dass, obwohl das letzte funktioniert, ist es nicht etwas, wofür http war und es ein bisschen hack, aber hey, was auch immer die Arbeit erledigt. Ein funktionierendes Beispiel hierfür ist die rails chat project, die ein Moloch-Derivat verwendet.

3

Technisch jede Netzwerk-basierte Anwendung gesprochen hat eine Netzwerkstruktur, darunter, und daher wird Sockets ...

Die einzige wirkliche Frage ist hier, ob Sie das alles Geschwätz gehen über den Server haben wollen oder zulassen Punkt zu Punkt Kommunikation. Wenn der erste, können Sie das Ajax-Framework verwenden, um mit Ihrem Webserver zu sprechen. Dies bedeutet, dass alle Ihre Kunden den Webserver ständig nach Updates abfragen.

Wenn die später, dann müssen Sie direkte TCP-Verbindungen zwischen den beiden Clients zulassen und müssen sozusagen ein wenig näher an das Metall.

Fragen Sie sich also: Wollen Sie die Verkehrskosten bezahlen UND haben Sie eine potentielle Haftung dafür, was immer es ist, dass Leute in ihren Kunden tippen? Oder, würdest du lieber ein Chat-Programm erstellen, mit dem die Leute miteinander reden können?

Natürlich, bevor Sie überhaupt so weit gehen, wollen Sie wirklich noch einen Chat-Client bauen? Dieser Raum ist schon ziemlich voll.