2016-09-30 12 views
0

私は、ユーザーがパラメータとしてjidを使用してログインしているが、成功していないかどうかを確認するソリューションを探しています。指定したJIDがすでにサーバーに接続されているかどうかを確認するにはどうすればよいですか?

サーバーにログインすることなくこれを確認する方法があるのだろうかと思います。ログを確認する前に、jidがすでにログインしていることを確認してから、メッセージをブロックしてアクセスをブロックしてください。私はagsXMPPライブラリを使用しています。 誰もそれを解決する方法を知っていますか?

答えて

0

ログオンせずにサーバーから直接JID経由でプレゼンスを取得できます。オープン火災でたとえば:あなたは、彼がオンラインかではありません知っているので、

http://example.com:9090/plugins/presence/[email protected]&type=xml

は、ユーザーのプレゼンスをあなたに戻って与えるだろう。

私はagxmpp sdkがこのような方法を単独で持っているとは思いません。

+0

どうすればよいですか?アカウントがログに記録されている場合、プレゼンスをチェックする方法を呼び出すとログアウトされるためです。 JIDによってプレゼンスをチェックしますが、これはパブリックサーバーで処理され、プロトコルのメソッドは非同期です。 –

+0

あなたの質問を言い換えることができますか? 誰か(匿名)がJID(サーバー側で設定はもちろん必要です)を与えられれば公開プレゼンスを得ることができ、それはユーザーがオンラインかオフラインかを示します。ユーザーがログオフ以外の理由でドロップした場合、プレゼンス・シンジケーションが常に遅れるため、これは100%信頼できるものではありません。 –

+0

さて、ログインせずにユーザーの存在を確認したかったのです。 EX:アカウントXがあり、サーバーにログインしたいが、既にこのアカウントが他のユーザーによってログに記録されていることを確認している場合は、既にログオンしている場合はそのアカウントが既に使用されているという通知が返されます。何が起こるのは、アカウントXにログインし、すでに別の接続されている人物がいる場合、サーバーは単に自分の認証前に確立された接続を削除します。 –

関連する問題