stanzaio getDiscoInfo не удалось с таймаутом
Я пытаюсь подключиться к Jabber-серверу Jitsi, используя stanza.io. Но это кажется более сложным, чем я думаю.
Чтение документации Reference.md не помогает мне понять проблему.
Поэтому я извлекаю минимальный пример с getDiscoInfo, который увеличивает время ожидания.
Использование следующего кода в фрагменте stackru не удалось, но по другой причине (доступ к window.localstorage завершился неудачно).
<html>
<head>
<script src="https://rawgit.com/legastero/stanza.io-demo/gh-pages/stanzaio.bundle.js"></script>
<script>
function write(text) {
var textNode = document.createElement("li");
textNode.textContent = text;
document.body.appendChild(textNode);
}
var serverName = "meet.jit.si";
var userName = "user";
var roomName = "testroom";
var muc = "conference." + serverName;
var roomUrl = roomName + "@" + muc;
var client = XMPP.createClient({
jid: roomName + "@" + serverName,
boshURL: location.protocol+ "//" + serverName + "/http-bind",
transports: ['bosh']
});
client.connect();
client.getDiscoInfo(roomUrl,'', (err, data) => {
write("err:"+ JSON.stringify(err) + " data:" + JSON.stringify(data))
});
</script>
</head>
</html>
Однако это может быть запущено из этого JSFiddle.
Сбой с ошибкой:
err: {"id": "5d30db9b-b2f1-4915-b387-424cb6e1673a", "type": "error", "error": {"condition": "timeout"}} данные: не определены
Я пробовал с getTime и некоторыми другими методами.
Но некоторые звонки работают как
client.joinRoom(roomUrl, userName, {status:"available"});
Так как поведение с использованием локального экземпляра jitsi и общедоступного сервера meet.jit.si одинаково, я полагаю, что проблема не в моей установке.
Знаете ли вы, почему почти все запросы к XMPP-серверу не выполняются?
1 ответ
Метод getDiscoItems необходимо вызывать после инициализации сеанса.
Я смог получить ответ, изменив код следующим образом:
client.on('session:started', () => {
client.getDiscoItems(muc,'', (err, data) => {
write("err:"+ JSON.stringify(err) + " data:" + JSON.stringify(data))
});
} )
Это дает ожидаемый результат:
err: null data: {"discoItems": {}, "lang": "en", "id": "cc3c40c8-0528-42d0-879c-fb67cf400b92", "to": "ad2506f3-03ef-4c7c-b472- bc757070e570@meet.jit.si/2c52a03b-8eb1-4329-8dbe-de68a2c4f682", "с":"conference.meet.jit.si","тип": "результат"}