2012-04-06 6 views
4

Wir haben eine Anwendung für iOS, die eine Chat-Funktion hat. Momentan funktioniert es mit langen Umfragen. Und jetzt versuchen wir, es so zu modifizieren, dass es mit Sockets funktioniert. Wenn es um den Socket geht, haben wir mit der Suche begonnen und es scheint, dass eine der besten Optionen die Verwendung von nodejs mit socket.io ist. Dann haben wir redis pub/sub verwendet, um die Zustellung und Speicherung von Nachrichten zu verwalten.Wie man chat basierte Anwendung mit nodejs, redis und mongodb entwerfen?

Nach ein paar Recherchen zu Redis empfiehlt die empfohlene Verwendung, dass die gespeicherten Daten in den Speicher passen. Aber wir haben eine kleine große Datenbank. Wir möchten die gesamte Chat-Geschichte speichern. Daher haben wir begonnen, redis als Cache-Datenbank zu verwenden, die den Chat-Verlauf des Online-Benutzers speichert (möglicherweise nicht ganz) und die eigentliche Konversation nach dem Offline-Wechsel von redis nach mongodb/simpledb schreibt (oder beide sofort).

Also zusammenfassend, wir sind dabei, zu entscheiden, nodejs und redispub/sub verwenden, um Nachrichten zu liefern, redis als Cache-Datenbank und mongodb zum Speichern der gesamten Konversation.

Was denken Sie über das Design? Ist das akzeptabel? Oder, wenn es einen besseren Weg gibt, den Sie vorschlagen können, können Sie bitte etwas mehr erklären?

Vielen Dank im Voraus.

Antwort

3

Für ein Chat-System denken Sie groß. Wenn Sie glauben, dass Sie eine Million Benutzer erreichen werden, dann gehen Sie dafür. Berücksichtigen Sie auch die Verfügbarkeit - wie wird Ihr System mit dem Ausfall einer Maschine umgehen?

Verwandte Themen