1
Smack(doc)が提供するMamManagerクラスを使用して、1対1チャットのアーカイブ済みメッセージを取得できました。しかし、私は、最新のメッセージと一緒にユーザーのリストを一覧表示する必要があります。以前のチャット履歴を持つ連絡先/友だちのリストをsmackで表示
誰もが、私はピシャリ& openfireを使ってこれを実現する方法についてどんな考えを持っていますか?どんな助けもありがとう。ありがとう
Smack(doc)が提供するMamManagerクラスを使用して、1対1チャットのアーカイブ済みメッセージを取得できました。しかし、私は、最新のメッセージと一緒にユーザーのリストを一覧表示する必要があります。以前のチャット履歴を持つ連絡先/友だちのリストをsmackで表示
誰もが、私はピシャリ& openfireを使ってこれを実現する方法についてどんな考えを持っていますか?どんな助けもありがとう。ありがとう
Smack
の連絡先を取得するためにRoster
クラスを使用してください。オフラインサポートのために、それらの連絡先をローカルデータベースにも保持します。
連絡先インポートのようなWhatsappを実装します。デバイスから連絡先を取得し、Roster
に追加する必要があります。これを行う理想的な方法は、Rest-APIを介して連絡先を送信し、サーバーにRoster
に連絡先を追加させることです。
あなたの接続オブジェクトを初期化したら、そのよう名簿リスナーを添付することができます。
val connection:XMPPTCPConnection // assuming you have the connection object
val roster = Roster.getInstanceFor(connection)
// NOTE: You should attach your roster listener even before calling connect() on your connection object.
// This way you get the roster list whenever the connection connects!
roster.addRosterLoadedListener(object:RosterLoadedListener{
override fun onRosterLoaded(roster: Roster?) {
// Update your database
}
override fun onRosterLoadingFailed(exception: java.lang.Exception?) {
// Handle error
}
})
メッセージを永続化のためには、ローカルデータベース(SQLiteのか、いくつかのORM)
感謝を使用する必要があります。しかし、ローカルのデータベースに保存し、新しいデバイスにユーザーログを記録すると、メッセージ/連絡先を新しいデバイスに同期することはできません。 –
また、Rosterクラス –
を使用して連絡先を取得するコードスニペットを共有することができれば嬉しいですが、私はあなたが単一デバイスのシナリオから始めることをお勧めします。すべてのユースケースを適切に考慮すると、マルチデバイスははるかに複雑になります。特にMultiUserChatの場合は特にそうです。さらに、これを動作させるには、すべてのメッセージをサーバーに保存する必要があります。これは通常、多くの人にとってセキュリティの問題です! :) –