問題タブ [xmpp]
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.
python - Python ライブラリを使用して xmpp メッセージを送信する
wokkel、xmpppy、または jabber.py のいずれかの Python ライブラリを使用して XMPP メッセージを送信するにはどうすればよいですか?
私は疑似コードを認識していると思いますが、これまでのところ正しく実行できていません。これは私がこれまでに試したことです:
- いくつかの API を呼び出し、サーバー名とポート番号を渡してそのサーバーに接続します。
- API を呼び出し、ユーザー名とパスワードを渡して JID オブジェクトを作成します。
- その JID で認証します。
- Message オブジェクトを構築し、いくつかの API を呼び出して、そのメッセージ obj を引数に渡します。
- いくつかの送信 API を呼び出します。
コンセプトは簡単に思えますが、細部のどこかに悪魔が潜んでいます。可能であれば、サンプル スニペットを表示してください。
java - このクラスは AtomicBooleans を使用します。スレッドセーフですか?
Synchronized(this)でコードをロックするのは好きではないので、 AtomicBooleansを使って実験しています。コード スニペットでは、XMPPConnectionIF.connect()がリモート サーバーへのソケット接続を作成します。変数_connectingはconnect()メソッドでのみ使用されることに注意してください。_connectedは、 _xmppConnを使用する必要がある他のすべてのメソッドで使用されます。私の質問は、以下のコード スニペットの後にリストされています。
私のコードに基づいて、2 つのスレッドが同時にconnect()を呼び出そうとした場合、1 つの接続試行のみが許可されるという点までスレッド セーフですか。
finally ブロックで、2 つの AtomicBoolean.set(..) を連続して実行していますが、これら 2 つのアトミック呼び出しの間のギャップの間に、一部のスレッドが他のメソッドで_connected.get()を呼び出す可能性があるため、問題はありますか?
_xmppConnを使用する場合、synchronized( _xmppConn )を実行する必要がありますか?
更新欠落していたログイン呼び出しをメソッドに追加しました。
protocols - ジャバープロトコルの問題
私のジャバーロボットの連絡先の1つ、
'subscription'属性値が'to'である、
これは、jabberプロトコルによると次のことを意味します。
****ロボットは相手のオンラインステータスをサブスクライブしましたが、相手は私のロボットをサブスクライブしていません。****
しかし、相手のアカウントにログインすると、
ロボットがオンラインになっていることがわかりますが、
なんでこんな感じ?
ジャバープロトコルは今混乱していますか?
windows - Jabber を使用してネットワーク メッセージを送信する
(また、 ServerFaultについても尋ねました。ここにも投稿するように勧められました)
他のユーザーがレポートのためにコンテンツをオンラインで送信した場合、ネットワークを介してさまざまなユーザー (コンプライアンス、生産) にデスクトップ アラートを送信する必要があります。
現在、NET SEND を使用していますが、これには配信の保証がなく、クライアントとサーバーの両方の観点から信頼性が低いことが証明されています (そして、Windows の以降のバージョンではサポートされなくなると思います。現在 XP を実行しています)。
Jabber ベースのソリューションを検討していますが、チャット ウィンドウを前面に表示したり、システムの近くに一時的な「トースト」メッセージを表示したりするのではなく、Jabber クライアントを使用して NET SEND のように画面にアラート メッセージをポップアップ表示した人がいます。トレイ。
アラート メッセージは永続的であり、ユーザーがそれを見たことを示すために、ユーザーによってのみ閉じられる必要があります。トースト スタイルのポップアップは、限られた時間だけでなく、ユーザーが再度閉じる必要がない限り問題ありません。
解決策はありますか?
xmpp - Openfireで登録されたトランスポートの自動サインインをオフにする方法は?
これは、OpenfireでのゲートウェイXEP0100のサポートに関するものです。
一部のトランスポートでは、openfireへの接続が成功すると(xmppユーザーを介して)自動サインインされることに気付きました。これは特にQQに適用されます。この自動サインイン機能をオフにするにはどうすればよいですか?基本的にクライアントの観点から、選択的にサインインできるようにしたいと思います。したがって、openfireへのXMPPConnectionを作成する場合、ダイレクトプレゼンスをトランスポートに送信するまで、すべてのトランスポートはサインオフされたままになります。
java - Javaで独自のIMサーバー/サービス用の簡単なインスタントメッセージングプロトコルを探しています
簡単な Instant Messaging サーバーを Java で実装することを考えていますが、別のプロトコルを作成するのではなく、既に単純な IM プロトコルを使用します。しかし、どのプロトコルを使用すればよいかわかりません。
既存の IM プロトコルを使用したい理由は、「ユーザー」が自分のクライアント (たとえば pidgin など) を使用できるようにしたいからです。pidgin は、XMPP、Simple などの幅広いプロトコルを既に提供しています。 、Bonjour など - クライアントを開発する必要はありません。
私は少し XMPP を見てきましたが、多くの作業がそのプロトコルを新しいサーバーに埋め込んでいるためです。もっと使いやすいプロトコルが他にあるのではないでしょうか?
私の質問は、本当に基本的でJavaで使いやすいプロトコルの提案はありますか? Pidgin は多数のプロトコルをサポートしていますが、どのプロトコルが私に関連していますか?
xmpp - ランダムな名前の Jabber 自動ログイン
JSJaCとejabberdを使用してライブチャットを構築しています。すべてのサイト訪問者にアカウント「ゲスト」が与えられることを除いて、すべて機能しています。2 人の訪問者が同時にライブチャットを試みると、応答が混乱するか、最初のユーザーがログアウトされます。
ゲスト名をランダムに設定できますが、その名前が登録されているか自動登録されているかを確認する必要があり、以前に登録されていないことを願っています。各ログインをランダムなリソース名に割り当てようとしましたが、それでも会話がマージされました。
要するに、複数の匿名ログインが livechat アカウントとの個々の会話を開始できるようにする最も簡単な方法を探しています。プライマリ ライブチャット アカウントがチャット中に、ライブチャットが別のユーザーにラウンド ロビンできれば、さらに良い (ただしオプション)。
ソリューションは、Web クライアント ベースまたはサーバー ベースのどちらでもかまいません。私は両方を制御しているので気にしません (また、ejabberd はさまざまなモジュールをサポートしています)。
ところで、登録済みアカウントを自動登録しようとすると、JSJaC simpleclient デモが次のように返します。
これがカスタムクライアントまたはサーバーセットアップで無視またはオーバーライドできるものかどうかはまだ確立していません. このエラーを検出して、自動登録せずに再試行できると思いますが、より良い/より簡単なオプションを聞きたいです。
c# - C# クライアントからクライアントへのメッセージング
最初に達成したいことを正確に説明しようとします。
2 人のユーザーが Windows フォーム アプリケーションを使用しているとします。ユーザー A が特定のフォームを開くと、フォームの基になるデータ レコードにロックが適用され、その時点でそのユーザーだけが変更できるようになります。
ユーザー B は、(グリッド内の) すべてのレコードのリストを持っています。これには、特にユーザー A が既に開いているレコードへの参照が含まれています。ユーザー A がレコードを開くと、ユーザー B のレコードのリストが更新され、行の横にあるロック アイコンをクリックして、レコードが使用中であることを示します。
これはメッセージングで行うことの些細な例ですが、ユーザー A がユーザー B が知る必要のあることを行っていることは理解できます。
Jabber-net for C# と OpenFire Jabber Server を使用してシステムを実装しました。基本的に、メッセージが送信されると、データベースのメッセージ テーブルに新しい行が挿入されます。メッセージ テーブルは、SqlDependancy オブジェクトを使用してサービス クライアントによって監視されるため、新しいメッセージの準備が整うと、サービスは関連するメッセージを作成し、Jabber および OpenFire サーバーを介して目的のクライアントに送信します。
これは問題なく動作しますが、OpenFire のすぐに使える機能はインスタント メッセージングをサポートするためのものであり、明らかに私が達成しようとしているものではありません。私が抱えている問題は、ユーザーが 2 つのアプリケーション コンテキスト (テストとライブ) にログインしている場合、user@server/resource の JID 構造がリソースを認識しないため、OpenFire はどちらにメッセージを送信するかを認識できないことです。
基本的に、私が現在 OpenFire と Jabber-net を使用している方法は、まったく正しくありません。
私が達成したいことを達成するために使用できるパターンはありますか。つまり、メッセージを送信しているクライアントを指定しながら、何かをするようにクライアントにメッセージを送信します。XMPP は、解析する独自のメッセージ タイプを構築できるため、答えのように思えました。
私のアプリケーションは、Windows フォーム、.NET 3.5 C# アプリケーションです。
java - 最高の Java jabber クライアント ライブラリ
Java jabber ライブラリについて、どのような良い/悪い経験がありますか?