問題タブ [smack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
9 に答える
13996 参照

android - (a)Smack ライブラリを使用して XMPP に新しいユーザーを登録する方法

ここの素晴らしい投稿を使用して、xmpp サーバーと android クライアントをセットアップしました... xmpp サーバーにいくつかの事前定義されたユーザーをセットアップし、それらの資格情報でログインできました。

今、私のアプリから、Androidクライアントを介してxmppサーバーに新しいユーザーとして登録したいと思います。誰でもこれを達成する方法を教えてください...どんな助けでも大歓迎です...!!!

0 投票する
2 に答える
8051 参照

xmpp - XMPP(Smack)メッセージを送信する

さて、問題は些細なことですが、私はそれの根底に到達することはできません。

AとBの2人のユーザーがいます

この例のJIDはA@123とB@123になります。ここで、123はサーバーのIPです。

次のコードを使用して、A->Bからメッセージを送信しています。

ニックネームの末尾に「@123」を付けることが100%確実になるように、IPをハードコーディングして、誤ったJIDがないようにしました。

したがって、A@123はmsgObjをB@123に送信します。これが、XMPPメッセージングが機能することを理解した方法です。A-> Bから送信することはできませんが、A @ 123-> B@123である必要があります。

しかし、私のサーバーは別のことを考えているようです。次のエラーが継続的に通知されます。

Openfireサーバー上のAとBの両方の名簿には、適切なJID(username @ 123)との連絡先として相互に接続されています。

誰かがいくつかの洞察を提供できますか?道に迷いました。

編集

Wiresharkを使用してOpenfireサーバーとの間で送受信されるXMLをキャッチし、メッセージの受信者に適切な名前が付けられているかどうかを判断しようとしています(AではなくA @ 123)。

Wiresharkを使用すると、転送されるXMLとしてこれを受け取りました。

SSLを無効にしましたが、安全に接続していません。なぜSSLタイプのXMLを取得しているのかわかりませんが、それは何ですか?

0 投票する
2 に答える
1684 参照

android - SmackChatManagerが正しく動作しない

SmackとそのChatManagerに関する追加情報を探すためにかなり検索しましたが、それほど多くはないので、SOFに来る時が来ました。

コードの特定の時点で、非常に基本的なことを行っています。

作成したチャットが実際にchatManagerにあることを確認しようとしています

私のプログラムでは、これまでに作成したchatManagerのインスタンスは1つだけですが、これを複数回行います。

そうするたびに、chatManagerが再初期化されているような気がします。私は完全に間違っていますか?

とにかく、問題は私が何の出力も得られないということです。「チャットがnull」または「チャットが保存されました」のどちらでもありません。chatManagerが問題を引き起こしていると私に信じさせます。

誰か助けてもらえますか?

0 投票する
2 に答える
745 参照

java - XMPP:元のリクエスターがオフラインの場合の相互サブスクリプションの確立に関するRFC(サブスクライブされたプレゼンス)

XMPPサーバー(OpenFire)とJavaSmackXMPPスタックに基づくカスタムクライアントがあります。手動のサブスクリプション受け入れを使用しているため、クライアントはサブスクライブとサブスクライブされたプレゼンスを交換する必要があります。

RFCに記載されているように、サブスクライブプレゼンス(「プレゼンスをサブスクライブしたい」)はサーバーによって保存され、ユーザーがログインするたびに、ユーザーが応答するまで再送します。残念ながら、同じことが回答(「購読済み」または「未購読」)には当てはまらないようです。元のリクエスターがオフラインの場合、他のユーザーがサブスクリプションリクエストに応答した場合、そのリクエスターは応答を受け取りません。XMPP RFCには、サーバーの予想される動作について何も見つかりませんでした。

私に何ができる?私が見逃したかもしれない何かがありますか?または、このユースケースを実装する標準的な方法はありますか?

このOpenFireフォーラムの投稿は、私が経験している動作が望ましいものであることを示唆しています...

すべてのポインタをありがとう、フロリアン

0 投票する
1 に答える
504 参照

java - Smack API - 名簿リストを展開および折りたたむためのループ jxTaskpane を表示する方法

ループのタスクペインを表示するのに問題があります。私は名簿のグループを取得するためのコードを持っています (グループ: 友達 - ビジネス - 会社など) 私のコードは:

しかし、jxTaskpaneはループしませんが、グループ名を出力すると2行が出力されます(データベースユーザーAには2つのグループがFriendsとNIITであるため)

サンプル印刷

結果:

0 投票する
5 に答える
14963 参照

android - Smack 経由でオンライン ユーザーをフレンド リストに追加できますか?

Smack API を使用してフレンド リストにオンライン ユーザーを取得できますか? 出来ますか?

ユーザー間でチャットするアプリに取り組んでいます。友達の名前を入力してチャットを送信するだけのチャットアプリケーションの例を作成できましたが、オンラインの友達リストが必要です。

0 投票する
2 に答える
2188 参照

android - Android での XMPP イベント

XMPP メッセージを傍受してアクションを実行するバックグラウンド プロセスを開発しようとしています。メインの XMPP ライブラリとして asmack を使用しています。特定のインテントに応答する BroadcastReciever が必要だと思います。問題は、意図をどのように高めるかです。この機能は Google トーク クライアントに存在するため、可能である必要があります。よろしくお願いします。

0 投票する
2 に答える
1884 参照

android - FacebookチャットはAndroidのSmackAPIでは機能しません

アプリ用のチャットクライアントを開発しています。現在、Gtalk、Facebook、Yahooでテストしています。そのためにSmackAPIを使用しています。これで、Gtalkでのテストに成功しました。しかし、Facebookの場合、エラーが発生しました。

ご覧のとおり、接続はできますがログインできません。私はすでにここで同じ質問を見ました:http ://stackoverflow.com/questions/3750547/faceing-problem-using-smack-on-androidしかし、その答えは私にはうまくいきません。

0 投票する
0 に答える
876 参照

android - asmack を使用して大きなテキストを送信する

私はアンドロイド用のjabberクライアントを構築するasmackを使用していますが、うまく動作しますが、中国語で大きなテキストを送信するときに問題が発生しました。XMPPConnection はサーバーからすぐに切断されました。接続の初期化のコードは次のとおりです。

そして、次のようなチャット メッセージを送信します。

0 投票する
2 に答える
1539 参照

java - 最初のブロードキャストメッセージの後に特定のSmackドメインにメッセージを送信する

Smack3.1.0とJavaを使用してインスタントメッセージングクライアントを作成しています。私が直面している問題は、特定のドメインのユーザーにメッセージを送信することと関係があります。

たとえば、1@gmail.comと2@gmail.comの2人のユーザーがいます。1@gmail.comは、IMクライアントを介してXMPPにログインします。2@gmail.comは、gmail.comを介してGChatにログインし、2回目はpidginを介してログインします。これで、1@gmail.comのインスタンスが1つと2@gmail.comのインスタンスが2つあります。

Gmailの仕組み。1@gmail.comが2@gmail.comにメッセージを送信すると、Gmailとpidginクライアントの両方が最初のメッセージを受け取ります。ただし、Gmailインスタンスがメッセージに応答する場合、それ以降のすべてのメッセージは1@gmail.comと2@gmail.comのGmailインスタンスの間でのみ送信されます。

IMクライアントでこの動作を模倣したいと思います。それを行う方法は、チャットを設定し、受信者のすべてのインスタンスに最初のIMを送信することだと思います。次に、応答をリッスンするようにMessageListenerを設定します。応答を受け取ったら、2 @gmail.com/resourceを指定して新しいチャットを作成する必要があります。しかし、その後、MessageListenerを2回作成する必要があります。何か案は?これが私が使用しているいくつかのサンプルコードです(このメソッドAddText()は単にメッセージを会話ペインに追加します):

更新 私はこの仕事をするために使用した実際のコードで以下の答えを補足したいと思いました:

要約すると、最初のメッセージを受信者のアドレスのすべてのリソースに送信し、応答を待ちます。応答を受け取ったら、現在のChatオブジェクトを、最初のメッセージに応答した個々のリソースを指定する新しいオブジェクトに置き換えます。コードは少し厄介で、MessageListenerおそらく新しいクラスに組み合わせることができる2つの異なるオブジェクトがあります。しかし、それは機能します。