問題タブ [jsjac]
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 - JSJaC + Openfire: 一部のユーザーと接続なし
わかりました、私はついに私の知恵の終わりです。XMPP サーバー (Openfire) を実行していて、JSJaC を使用して JavaScript 経由で接続しようとしています。奇妙なことに、一部のユーザーに対しては接続を確立できますが、すべてのユーザーに対しては確立できません。次の動作を再現できます: 2 つのアカウント (ユーザー名/パスワード)、つまり r/pwd と rr/pwd を作成し、その結果:
r/pwd は動作します
rr/pwd が機能しません。
これまでのところ、1 文字のみで構成されるユーザー名を持つ各アカウントは機能します。これはかなり奇妙です。反対側には、alice/a work などの古いアカウントがあります。接続の問題全体はまったく新しいものであり、私が行った変更を追跡することはできません.
そして、XMPP をサポートするインスタント メッセンジャーで私の混乱を完全なものにするために、すべてのアカウントが動作します (例: rr/pwd)。したがって、エラーは JavaScript コードのどこかにあるはずです。関連するスニペットは次のとおりです。
上記のコードは機能しますが、oArgs.username = "rr" を設定すると失敗します。
ヒントをいただければ幸いです。私がここで見逃しているのは、本当にばかげたものに違いないと確信しています。
キリスト教徒
apache - JSJaC+Openfire はローカルでのみ動作します
これまでのところ、すべて (Apache、Openfire、JSJaC アプリケーション) をラップトップ上で実行して、完全にローカルで開発しました。今、Apache/Openfire 用のリモート サーバーを使用したいと考えています。私は基本的に同じ手順を実行しました。http-bind 全体。JSJaC が提供する simpleclient.html で設定をテストします。
リモートサーバーで simpleclient を直接使用すると、 http ://here.domain.org/simpleclient.html のように動作します。ローカルで使用すると (例: http://[local_machine]/simpleclient.html)、同じ設定で 503 (サービスを利用できません) が返されます。Openfire/JSJaC よりもネットワーク/Apache の問題のようですが、私は専門家ではありません。
simpleclient の私のパラメータ:
- HTTP ベース: http://here.domain.org/http-bind/
- JabberServer: here.domain.org
したがって、Apache仮想ホストのconfファイルには次の行があります。
- AddDefaultCharset UTF-8
- ProxyRequests オン
- ProxyPass /http-bind/ http://127.0.0.1:7070/http-bind/
したがって、simpleclient.html がサーバー上に存在する場合に接続できるため、基本的に http バインドは機能します。私がこれまでに試したこと:
- 7070がexternから開いているかどうかを確認しました:はい
- etc/hosts をチェック - ここに関連する行
- 127.0.0.1 ローカルホスト
- 123.123.123.123 here.domain.org here
- 制限についてApache confをチェックしました:何も見つかりません。基本的に、どこにでも「すべてから許可」があります(ただし、どこを見ればよいか完全にはわかりません)
ところで、たとえば Pidgin を使用すると、ラップトップからリモート サーバーに接続できます。JSJaC の simpleclient だけでは不十分です。したがって、問題の原因は http-bind だと思います。ポート 7070 が開いていないかどうかはわかりますが、開いています。
ヒントやヘルプをいただければ幸いです。
キリスト教徒
reverse-proxy - jsjac を openfire に接続できません
jsjac を openfire サーバーに接続しようとしています。もちろん、ほとんど成功しません。
Eclipse内のTomcatでホストされているフロントエンドjspsにリクエストをリダイレクトし、リクエストをXMPPサーバーにバインドするApacheサーバーがあります。
構成ファイルでの仮想ホストのマッピングは次のとおりです。
ServerName ualbanybook.com AddDefaultCharset UTF-8 ProxyRequests On ProxyPass /miniFaceBook http://localhost:8080/miniFaceBook ProxyPassReverse /miniFaceBook http://localhost:8080/miniFaceBook RewriteEngine on RewriteRule /http-bind/ http://localhost:8181/ http-bind/ [P]
次の画像は、登録しようとしたときのリクエスト URL とエラー コードの両方を示しています。
chrome dev ツールのスナップショットの次のスナップショットは、登録要求が実際に送信され、ブラウザーが応答 200 OK を受信したことを示しています。
openfire で http バインディング用にポート 8181 を構成しました。ポインタ/ヘルプは大歓迎です。ありがとう。
javascript - Windows Phone 7.1 で phonegap ツールを使用する XMPP チャット クライアント
私の WindowsPhone7.1 プロジェクトには、XMPP チャット モジュールがあります。HTML/CSSを使ってチャットウィンドウを完璧にデザインしました。
Jabber サーバー (Openfire) との接続にはJsJaC ライブラリを使用しました。
Windows Phone 7.1 プロジェクトと統合するにはどうすればよいですか?
ライブラリ スクリプト ファイルをWWW
フォルダーに含める必要がありますか?
その後、cordavo-1.5.0.js でクライアント スクリプトを単純に記述できますか?
xmpp - Facebook チャット プラットフォームは BOSH をサポートしていますか?
関連する質問(Facebookチャットの統合)の回答を読みました
Facebook は S2S フェデレーションを行わず、C2S のみを行うため、それを XMPP サーバーとして使用する (またはサーバーに XEP-0100 のようなものを実装する) 必要があります。Facebook は現在 BOSH をサポートしていません。
また、Facebook チャットをアプリに統合する必要があります。現在、BOSH 経由で XMPP をサポートしているかどうかを知りたいですか? developers.facebook.com には Chat API に関するページが 1 つしかありません。BOSH に関するものは見当たりませんでした。
BOSH をサポートしていない場合、どうすればよいですか? プロキシにするために、BOSH を備えたサーバーが必要ですか?
ありがとう。
unit-testing - 単体テスト xmpp クライアント
xmpp クライアントをテストする主なポイントは何ですか?
JsJacライブラリを使用して、一種の XMPP クライアントであるチャットを作成しています。ここで、さまざまなサーバー信号の後でクライアントの動作をテストする必要があります。たとえば、サーバーがクライアントにエラーを送信すると、ondisconnect
コールバックがトリガーされます。また、このコールバックがトリガーされたときに特定の条件が満たされていることを (別のテストで) テストする必要があります。
問題は、テストで実際のサーバーに接続する必要があるか、それとも何らかのモックを作成できるかということです。
このような方法でサーバー メッセージをエミュレートできます ( CoffeeScriptコード):
しかし問題は、これを行うには xmpp オブジェクトが接続状態にある必要があることです。
xmpp - JSJaC ライブラリを使用してスタンザ メッセージを生成するにはどうすればよいですか?
JSJaC でスタンザ メッセージを作成したいと思います。
問題は、最初からサブメニューの数がわからないため、ループを使用する必要があることです。私が試してみました
エラーが発生します。また、ループの代わりに文字列を作成してオブジェクトに変換しようとしましたが、成功しませんでした。
何か案は?
javascript - Ejabberd プレゼンスが利用可能になった後、BOSH セッションを閉じます
Ejabberd (14.07 & 14.12) が同じセッションの「利用可能な」スタンザを受け取った後、BOSH セッションを閉じている理由がわかりません。
私はJsJacをWebクライアントライブラリとして使用しており、セッションはサーバー側で事前にバインドされており、JsJacは最初のページの読み込み時に「継承」し、再起動時にalを実行しています。これが発生するシナリオは、接続とチャットが成功した後です。Chrome 開発者ツールを使用してネットワーク接続を無効にします。
Ejabberd は 15 秒ごとに ping を実行し、タイムアウト時に「kill」に設定されます。ejabberd.yml の BOSH の Inactivity_timeout は 480 に設定されています。
その後、ユーザーはリンクをクリックして再接続を試みることができます。これは、最初の prebind+client 側の継承とまったく同じ関数を呼び出しています。再接続が成功したように見えた後、数秒後、次のようになります。
Close session for
anonymous.c6502a950667fc79c3e1534559cc02e0@localhost/7f317c7fcbb9fb1b79c414c2d8afe05c
ejabberd ログに表示され、使用不可のスタンザがチャットの相手に送信されます。
質問: BOSH セッションが終了する理由を知っている人はいますか?
Ejabberd ログの関連部分は次のとおりです。
ログの詳細はこちらです。https://gist.github.com/Elexy/052a6a428fb57147bf4e