問題タブ [strophe]
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.
javascript - Openfire: openfire サーバーで SASL Anonymous を使用してユーザーを作成する
http://groups.google.com/group/strophe/browse_thread/thread/a0e15ae226b91a3a?fwc=1 . _ 既存のアカウントのみで新しいユーザーを登録することができました(通常の「管理者ではない」ユーザーとして)。それはオープンファイアのセキュリティ問題ですか?以下を使用して匿名で接続しました:
サーバーは以下を返します。
登録済みのユーザーと接続すると正常に動作し、他のユーザーを作成できます。register@server.local などの専用ユーザー アカウント (管理者権限なし) からの登録を許可するのは安全ではありませんか?
cordova - phonegapアプリでストローフィを使用してopenfireに接続できません
ストローフィを使用してxmppサーバー(私の場合はopenfire)に接続しようとするphonegapアプリケーションを作成していますが、コールバック関数のステータスとして常にStatus.CONNFAILを取得します。何が理由でしょうか。index.htmlの私の単純なコードは次のとおりです:
アラートでは、Status.CONNFAILの場合に常に2が表示されます。res / xml/cordova.xmlにopenfireConnectionURLをリストしました
javascript - connect() の代わりに strophe attach() を使用しても、接続されたコールバックを 2 回トリガーしない限り機能しません
prosody XMPP サーバーを使用して、「JavaScript と jQuery を使用したプロフェッショナルな XMPP プログラミング」の第 3 章の例を試しています。これは基本的にピンポンの例であり、正常に動作します。問題は、この例を変更して、Cookie 内に jid、sid、rid を保存し、このデータを使用して、ページのリロード時に connect() の代わりに strophie attach() を呼び出す場合です。私の例は、2 つ以上の ping を 1 つずつ実行している場合にうまく機能し、サーバーが 1 つしかない場合は何も返されません。これが私のコードです:
Javascriptコード全体はこちら
問題は、2 つの ping が送信され、pong ハンドラーが 2 回トリガーされたときに関数$(document).trigger('connected');
で 2 回行う場合です。ping を 1 回だけトリガーすると、pong ハンドラーは呼び出されません。on_connect
status === Strophe.Status.ATTACHED
前もって感謝します。
javascript - Strophe.js サーバーは、現在アクティブにチャットしているユーザーに対しても利用不可のステータスを送信します
最近、Strophe.js アプリケーションで別の問題が発生しました。ユーザー B とアクティブにチャットしている (<active> などを含む仕様に従って適切な xml を送信している) にもかかわらず、サーバーがユーザー B に私が利用できなくなったことを通知することが起こります。
現時点では、ロジックは次のようになります。
- 接続
- 初期プレゼンススタンザを送信
- 必要に応じてステータス (不在/dnd) を更新する
- 10 秒ごとにサーバーへの ping を開始する
- ユーザーはチャットできるようになりました
サーバーがクラッシュしていないことを確認するために Ping が実行されます。これは広く使用されている (<iq...> を使用する) 手法です。
ユーザーが送信するすべてのメッセージは次のようになります。
この問題とその解決策を知っていますか?
xmpp - Strophe 経由でアタッチする (接続しない) 場合、プレゼンスを XMPP サーバーにブロードキャストする必要がありますか?
XMPP 仕様では、クライアントは XMPP サーバーへの接続時にプレゼンスをブロードキャストする必要があると規定されています。Strophe には、XMPP サーバーに「接続」するための 2 つの方法があります。接続と接続です。Connect は完全な認証を行い、attach は既存の接続に再接続するためのものです。アタッチを使用する場合、クライアントはプレゼンスをサーバーにブロードキャストする必要がありますか?
私のテストでは、アタッチ時にプレゼンスをブロードキャストしない場合、クライアントは他のユーザーからメッセージ (プレゼンス、メッセージ、またはその他) を受信しないように見えます。サーバ。プレゼンス ブロードキャストがなければ、ユーザーが接続されていることをサーバーが認識していないかのようです。
これは私が自分の質問に答えたかのように思えますが、おそらくサーバーにバグがあるのでしょうか、それとも何か間違ったことをしているのでしょうか、それともこれは予想される動作でしょうか?
php - XMPPとBOSHを使用してFacebookチャットを実装する方法
私はphpベースのウェブサイトを開発しています。Facebookチャットを実装したいです。
私の質問は、BOSHでXMPPをどのように使用できるかということです。XMPPとBOSHの関係は何ですか。
JAXLやstrophe.jsなどのライブラリを使用してFacebookチャットを実装する方法を理解するためのサンプルソースコードはありますか
javascript - Strophe、backbonejs、jquery-mobile
バックボーンjsを使用してMVC構造化モバイルアプリを構築したいと思います。Webで情報を検索したところ、次のストローフィバックボーンプラグインしか見つかりませんでした。
backbone.jsとStropheを一緒に使用する際に問題が発生する可能性はありますか?
apache - xmpp pubsub ノードへの画像の投稿
Jack Moffit の著書 Professional XMPP Programming を読んでいて、現在の問題に対する適切な解決策についていくつか質問があります。私は主に XMPP アプリケーションを構築しています。このアプリケーションでは、主にテキストが pubsub ノードにパブリッシュされますが、画像 (後でファイルやビデオになる可能性があります) もパブリッシュされます。画像の公開を実現するには、次の 2 つのオプションがあります。
- ユーザーは、base64 でエンコードされ、アイテムとして pubsub ノードに保存される画像をアップロードできます (これを行うにはいくつかの短所があります: db はパフォーマンスのボトルネックですが、オプションとして NoSQL db を使用できますか?どの xmpp サーバーを使用できますか? MongoDB のような NoSQL データベース) または
画像をアップロードするにはWebサーバーを使用する必要がありますが、その後
を。外部 Web アプリケーションとしてアタッチする別の Web アプリケーションが必要ですか? b. xmpp ユーザーは、サブスクライブしているノードで公開されたイメージのみを取得する必要があります c. 画像がWebサーバーに保存される場所を追跡する必要があります(そのためのdbテーブル、またはWebサーバー上の画像ファイルにアクセスするためのpubsubノード名とpubsubアイテムIDの組み合わせに基づくフォルダー/ファイル構造のみ)
どんなコメントでも大歓迎です!ありがとう!
xmpp - パンジャブ州は、ストロフェからメッセージを受け取っていることを一貫して認めていません
まず、私と一緒にこの問題を見ていただきありがとうございます。
現在、strophe.js を使用して BOSH 接続を介してパンジャブに接続しています。これにより、最終的にメッセージが Openfire に転送されます。サーバーで事前にバインドし、strophe で接続にアタッチしています。これは最初は問題なく機能します。メッセージを送受信でき、アイドル状態の ping を取得すると、正常に応答できます。しかし、しばらくすると、私は切断されます。
Punjab のログを調べたところ、strophe からメッセージを送信したときに、Punjab から httpbind の確認応答が常に得られるとは限らないようです。Strophe は想定どおりに約 60 秒間待機し、同じ ID を持つ完全な複製であるメッセージの再送信を試みます。Punjab がメッセージを認識していないため、メッセージを受信したかどうかがわからないため、これは理にかなっています。ただし、何らかの理由で、Punjab はこの重複メッセージを取得し、RID が正しくない新しいメッセージであると見なし、他のメッセージと同様に内部 RID カウンターをインクリメントします。さらに、メッセージを Openfire サーバーに再度転送しますが、私が知る限り、これが大きな影響を与えることはありません。最後に、これが何度か起こった後、
私の質問は、パンジャブが一部のメッセージを本来あるべきように認識していないのはなぜですか - <body xmlns='http://jabber.org/protocol/httpbind'/>
strophe に戻ることです。
このプロセスは、以下のログの例で詳しく説明されています。
どんな助けでも大歓迎です。おそらく私は、パンジャーブが何をしているのかを完全には理解していません。Punjab は、httpbind 本体にパッケージ化された strophe から BOSH 経由でメッセージを取得しているように思えます。httpbind 本文からメッセージを抽出し、ダイレクト セッションを介して生のメッセージを Openfire に転送します。最後に、<body xmlns='http://jabber.org/protocol/httpbind'/>
メッセージを受信して処理したことを strophe に知らせるために、生のメッセージを送り返すことで strophe に応答します。メッセージが Openfire から着信すると、[HTTPChannel,21,127.0.0.1] ヘッダーではなく、[XmlStream,client] ヘッダーの下のログに表示されます。これらは直接セッション接続を介して Openfire から受信され、Punjab はそれらを httpbind 本文にラップし、BOSH を介して strophe に転送します。その後、Strophe<body xmlns='http://jabber.org/protocol/httpbind'/>
はトランザクションを確認する空の応答を返します。
では、パンジャブ州が時々メッセージの確認に失敗するのはなぜでしょうか? また、重複したメッセージを重複として認識せず、再送信して誤って RID カウンターをインクリメントするのではなく、確認応答を返すだけではないのはなぜですか? 改めまして、ここまでお読みいただきありがとうございます。私は機知に富んでおり、どんな助けもいただければ幸いです。
失敗の完全なパンジャブ語ログは次のとおりです。
backbone.js - Backbone および Strophe muc プラグイン: 着信イベントを処理する
ビューにも表示される部屋に送信された最後のメッセージを取得しますが、新しいメッセージが着信した場合、Strophe イベントハンドラーは起動しませんが、ネットワーク経由で着信メッセージスタンザ (接続の xmlInput) が表示されます。
その理由は何でしょうか?
接続後、MessageList を作成し、Strophe ハンドラを登録します。
そしてMVC: