0

私は自分のサイトに xmpp クライアントをセットアップしようとしているので、慣れるために本の例に従っています。コードをコピーして例 3 を実装しました。私が変更したのは、機能している "http://localhost:5280/http-bind/" への strophe 接続アドレスとスクリプト パスだけでした。localhost/hello.html を指すと、期待どおりに読み込まれます。資格情報を入力して接続を押しても何も起こりませんか? これはjsのエラーでしょうか?

コードはここの第3章と同じです

編集: 接続ボタンの問題は、strophe と flxhr js が正しく読み込まれていないことでした。これで、接続ボタンが機能し、バインドされた接続関数が呼び出され、ダイアログ ボックスが閉じます。ただし、接続された関数と切断された関数は呼び出されないため、接続を押しても何も起こりません。何が原因でしょうか?

4

2 に答える 2

2

Strophe.jsの問題をデバッグする最良の方法は、有線トラフィックを監視することです。これは2つの異なる方法で行うことができます。

1)Firebugのネットワークパネルを開くか、ChromeまたはSafariの開発者ツールで開きます。そこにStropheからのすべての投稿と応答が表示されます。この場合、初期のXMPPセットアップと認証を含むこれらのいくつかを確認する必要があります。接続にまったく失敗した場合は、通常、エラーが発生するPOSTが1つだけ表示されます。その場合は、エラーを投稿してください。おそらく私はそれを診断できます。

2)Stropheのログ機能を定義し、何が起こっているかを印刷してもらいます。これは、BOSHセッションを確立しているが、それ以外の場合に問題がある場合にうまく機能します。これをする:

connection.rawInput = function (data) { console.log(" IN: " + data); };
connection.rawOuput = function (data) { console.log("OUT: " + data); };

また、console.logを使用してJavaScriptコンソールに書き込む代わりに、DOMに追加することもできます。

デバッグ関連の詳細については、次の操作を実行できます。

Strophe.log = function (lvl, msg) { console.log("LOG: " + msg); };

第4章では、これらのテクニックのいくつかについて説明していると思います。

于 2012-04-16T21:24:04.793 に答える
0

その例を試してみましたが、うまくいきました。したがって、js コードを変更していない場合、問題は ejabberd サーバーのセットアップにあるはずです。ほとんどの場合、ejabberd.cfg で設定されたホスト名です。私はいくつかのことを試してみます:

  1. ejabberd.cfg ファイルで、localhost が次の行にあることを確認します。

    {ホスト、["localhost"]}。

  2. ホスト名に問題がない場合は、ejabberd ログ レベルを 5 に上げて、ejabberd を再起動します。ここに ejabberd エラー メッセージを投稿してください。一緒に解決できます。

于 2012-05-13T13:05:22.567 に答える