2009-04-30 13 views
1

私はSmack APIを使用してJavaでXMPPクライアントを作成しています。XMPP Smack API RosterListener +データベース変更

私は...

public void entriesAdded(Collection arg0) {} 

...それは名簿のほかに気づくたびに、各ユーザーの名簿リスナーを登録し、スマックAPI呼び出し。

データベースが変更されてもSmack APIのcreateEntry()メソッドではなく、このリスナーがオフに設定されるかどうかは誰にも知られていますか?

基本的に、私はXMPPクライアントをウェブサイトに結びつけたいと思っています。誰かをウェブサイトのフレンドリストに追加すると、そのサイトはクライアントに通知します。ソケットを設定するかPHPを使ってXMPPサーバーにログインするのではなく、データベースを変更するだけでうまくいくと思っていました。

クライアントが絶えず変更をポーリングすることなくこれを処理する別の方法がありますか?

答えて

0

データベースを変更することは、クライアントライブラリであるため、Smackとはまったく関係ありません。データベースはありません。データベースは、サーバーによって使用およびアクセスされ、サーバーに応じて、dbが変更されたときにサーバーがメッセージをポストする機能があります。 xmppサーバに実際にこの機能があるかどうかはわかりません。

使用しているサーバーの機能を確認し、サーバー自体の拡張機能を使用して、名前のエントリを追加する必要があります。おそらくXMPPサーバーとデータベースの同期が外れてしまうため、データベースを直接変更することは実際のところのようには聞こえません。

データベースをポーリングするクライアントに関しては、クライアントがXMPPサーバーおよび潜在的にWebサーバーによって使用されている場合、クライアントがデータベースに直接アクセスできるようにするのは良い考えではありません。

関連する問題