#javascript #jquery #xmpp #strophe
#javascript #jquery #xmpp #strophe
Вопрос:
Я просто новичок в XMPP, и я создаю первый код «ПРИВЕТ». Пожалуйста, не торопитесь, посмотрите на следующий код (.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 («подключен») и bind («отключить»). Поэтому я предполагаю, что код не может быть запущен туда. Я никогда не делал этого раньше, и об этом редко есть документы, поэтому я не знаю, что делать сейчас.
Вопрос: Ребята, не могли бы вы, пожалуйста, взглянуть на это и сказать мне, что было не так? Я сам все еще работаю над его отладкой!
Дополнительная информация: Это то, что находится в моей веб-папке (боюсь, что отсутствуют файлы javascript framework). Все файлы 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
Я был бы признателен за любую помощь.
[x]
Комментарии:
1. Вы запускаете этот код внутри с локального веб-сервера?
Ответ №1:
ваш код в порядке, проблема в URL, предоставленном для установления соединения с использованием Strophe.
переменная conn = новая строка.Подключение («http://bosh.metajack.im:5280/xmpp-httpbind «);
Попробуйте найти местоположение сервера, в противном случае установите xmpp-сервер (vysper) локально на вашем компьютере и измените URL как http://localhost:8080/bosh /
Также попытайтесь прокомментировать включение flxhr.
Комментарии:
1. Всем привет. Спасибо за ваш ответ. Я пытался следовать инструкциям в этой книге «Профессиональное программирование XMPP с помощью JavaScript и jQuery», и я почти уверен, что я все правильно закодировал. Я даже тестирую свою учетную запись Jabber на «jwchat.org «, и я могу войти в систему. Итак, я предполагаю, что проблема в сервере? Я бы хотел, чтобы мой проект работал онлайн, поэтому не могли бы вы порекомендовать мне сервер для приложений реального времени, и он отлично работает? я полагаю, что bosh.metajack.im:5280/xmpp-httpbind просто не работает. Я попробую Apache Vysper. Но, пожалуйста, помогите мне сделать это как можно чаще онлайн. Еще раз спасибо. [x]
2. @priya у меня есть определенные сомнения по поводу «включения flxhr», вы предлагаете прокомментировать включение flxhr, можете ли вы сказать мне, в чем причины, я столкнулся с той же проблемой, хотя я использовал локальный сервер «localhost: 5280 / httpbind», когда я закомментировал включение flxhr, все начало работать нормально, согласно книге «Профессиональное программирование XMPP» flxhr.js и его подключение к strophe используется для выполнения кроссплатформенных вызовов или для использования прокси-серверов!!!!!! итак, каковы будут возможные причины??
Ответ №2:
Если вы используете Openfire на своем локальном хостинге, убедитесь, что
bosh_service_url = 'http://127.0.0.1:7070/http-bind/'
ie
var conn = new Strophe.Connection("http://127.0.0.1:7070/http-bind/");
И если вы используете ejabberd на своем локальном хостинге, убедитесь, что
bosh_service_url = "http://127.0.0.1:5222/http-bind/"