2

私は XMPP の初心者で、最初の「HELLO」コードを作成しています。時間をかけて次のコードを確認してください (.zip はこのトピックの最後にあります)。

<html>

<head>
<title>Hello - Chapter 3</title>
<style type="text/css">
body {
    font-family: Helvetica;
}

h1 {
    text-align: center;
}

.hidden {
    display: none;
}

#log {
    padding: 10px;
}
</style>
<script language="javascript" type="text/javascript" src="scripts/jQuery.js"></script>
<script language="javascript" type="text/javascript" src="scripts/jQueryUI.js"></script>
<script language="javascript" type="text/javascript" src="scripts/strophe.js"></script>
<script language="javascript" type="text/javascript" src="scripts/flXHR.js"></script>
<script language="javascript" type="text/javascript" src="scripts/strophe.flxhr.js"></script>
<link rel="stylesheet" href="hello.css"></link>
<script language="javascript" type="text/javascript">
var Hello = {
        connection: null,
        log: function(msg) {
        $("#log").append("<p>" + msg + "</p>");
        }
    };

$(document).ready(function() {
    $("#login_dialog").dialog({
        autoOpen: true,
        draggable: false,
        modal: true,
        title: "Connect to XMPP",
        buttons: {
            "Connect": function() {
                $(document).trigger("connect", {
                    jid: $("#jid").val(),
                    password: $("#password").val()
                });
                $("#password").val("");
                $(this).dialog("close");
            }
        }
    });

    $(document).bind("connect", function(ev, data) {
        var conn = new Strophe.Connection("http://bosh.metajack.im:5280/xmpp-httpbind");
        conn.connect(data.jid, data.password, function(status) {
            if (status === Strophe.Status.CONNECTED) {
                $(document).trigger("connected");
            } else if (status === Strophe.Status.DISCONNECTED) {
                $(document).trigger("disconnected");
            }
        });
        Hello.connection = conn;
    });

    $(document).bind("connected", function() {
        // Inform the user
        Hello.log("Connection established");
    });

    $(document).bind("disconnected", function() {
        Hello.log("Connection terminated.");
        // Remove dead connection object
        Hello.connection = null;
    });
});
</script>
</head>


<body>
<h1>Hello</h1>
<div id="log"></div>

<!-- Login dialog -->
<div id="login_dialog" class="hidden">
<label>JID:</label><input type="text" id="jid">
<label>Pwd:</label><input type="password" id="password">
</div>

</body>

</html>

ドキュメントとコードによると、「接続が確立されました」または「接続が終了しました」と言う必要があります。しかし、そうではありません。コードのすべての行を入れようとしましたがalert("It runs to here!");、まだ alert() です。bind("connected") と bind("disconnect") に入れると、もう警告しません。したがって、コードはそこまで実行できないと思います。私はこれまでやったことがなく、これに関するドキュメントはめったにないので、今何をすべきかわかりません。

質問: 皆さん、それを見て、何が間違っていたのか教えていただけますか? 私自身はまだデバッグに取り組んでいます!

追加情報: これらは私の Web フォルダーにあるものです (javascript フレームワーク ファイルが見つからないのではないかと心配しています)。すべてのjsファイルは最新バージョンです。

  • index.html
  • スクリプト/

    • jQuery.js
    • jQueryUI.js
    • strophe.js
    • flensed.js
    • flXHR.js
    • flXHR.swf
    • flXHR.vbs
    • swfobject.js
    • updateplayer.swf
    • checkplayer.js
  • css/

    • 重要ではありません...

これが私のコードです。時間をかけて表示してください:http://xx3004.kodingen.com/XMPP

助けていただければ幸いです。

[バツ]

4

2 に答える 2

2

コードは問題ありません。問題は、Strophe を使用して接続するために提供された URL にあります。

var conn = new Strophe.Connection("http://bosh.metajack.im:5280/xmpp-httpbind");

サーバーの場所を見つけようとするか、そうでない場合は xmpp サーバー (vysper) をマシンにローカルにインストールし、URL をhttp://localhost:8080/bosh/に変更します。

また、flxhr のインクルージョンについてコメントしてみてください。

于 2011-07-08T10:01:59.167 に答える