Strophe.Connection オブジェクトを作成および初期化するために Strophe.Connection を使用し、'connect' 関数を使用して接続プロセスを開始しますが、本で期待されているように CONNECTED ではなく ATTACHED ステータスを返します。
このコードは、Jack Moffitt の「JavaScript と JQuery を使用したプロフェッショナルな XMPP プログラミング」からのものですが、私にはうまくいきません :-(
- Openfire と eJabberd サーバーの両方で同じです
- BOSHをプロキシするようにApacheを構成する場合も同じです
- http://bosh.metajack.im:5280/xmpp-httpbindのテスト サーバーと同じです。
- http://localhost:5280/http-bindまたはhttp://localhost:5280/xmpp-httpbindを入力すると、BOSH ステータスは問題ありません
私はそれで一日中過ごしました、そして私は大きな頭痛がしています。どんな助けでも感謝します。ありがとうございました、
コードは次のとおりです。
$(document).bind('connect', function (ev, data) {
var conn = new Strophe.Connection(
"http://localhost: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');
}
});
何が起こっているのかを理解するために、コードを次のように変更しました(接続ステータスを使用):
$(document).bind('connect', function (ev, data) {
var conn = new Strophe.Connection(
"http://localhost: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');
} else if (status === Strophe.Status.ERROR) {
alert ('status ERROR');
} else if (status === Strophe.Status.CONNECTING) {
alert ('status CONNECTING');
} else if (status === Strophe.Status.CONNFAIL) {
alert ('status CONNFAIL');
} else if (status === Strophe.Status.AUTHENTICATING) {
alert ('status AUTHENTICATING');
} else if (status === Strophe.Status.AUTHFAIL) {
alert ('status AUTHFAIL');
} else if (status === Strophe.Status.ATTACHED);
alert ('status ATTACHED');
それは私に2つのステータスを示しています:接続中、次に接続中。本で期待されているように CONNECTED ステータスを取得できないのはなぜですか ???