私はNode.JSのSocket.IOを使ってチャットアプリケーションを作成しています。Google App EngineとSocket.IOのモバイルチャットアプリケーション
私は自分のアプリでオフラインメッセージングを実装しています。つまり、ユーザーがアプリを開いたときに、彼はオンライン時に見逃したすべてのメッセージを受け取ります。
これは私のアプローチです:
1)クライアントは、アプリを開いて、購読している/部屋 2に参加する)クライアントはSocket.IO 3にメッセージを送信します)Socket.IOはいくつかの種類にメッセージを挿入データベース/データストア 4)クライアントがメッセージを取得しようとすると、データベース/データストアからプルされ、ユーザの電話に保存されます。メッセージはデータベースから削除されます。
これは正しい方法ですか?
私はオンラインで探していましたが、Google App Engine Task Queueのようなタスク/メッセージキューを使用するように提案された人もいましたが、これはどういう仕組みか分かりません。
なぜ私のデータベースからメッセージを削除できないのですか? @nadavvadan –
これで、ユーザーのチャット履歴は保存されないためです。これはあなたのユースケースによりますが、チャットの履歴をDBに保存して、ユーザーがデータを削除した後に同じデバイスから他のデバイスにアクセスできるようにすると思います。繰り返しますが、すべてのアプリケーションに適していないため、私は最も一般的な使用事例として私に打撃を与えています。 – nadavvadan
このコンテキストでは、メッセージキューがデータベースを置き換えることができます。たとえば、データベースにメッセージを格納する代わりにRabbitMQを使用できますか? –