В автономном приложении XUL я бы хотел перехватить исключение сервер не найден
. Я пробовал проверять состояние в событии onStateChange
nsIWebProgressListener
, но это, похоже, не работает. Моя реализация события onStateChange
показана ниже. Я предполагаю, что если STATE_START
или STATE_STOP
не возвращает допустимое значение, то с загрузкой страницы что-то не так, и отображается сообщение об ошибке для пользователь.
onStateChange: function (aProgress, aRequest, aFlag, aStatus) {const STATE_START = Components.interfaces.nsIWebProgressListener.STATE_START; const STATE_STOP = Components.interfaces.nsIWebProgressListener.STATE_STOP; если (aFlag & STATE_START) {document.getElementById ("progressBar"). hidden = false; } если (aFlag & STATE_STOP) {setTimeout (функция () {document.getElementById ("progressBar"). hidden = true;}, 2000); } if (aFlag & (! STATE_START |! STATE_STOP)) {alert («Кажется, ваше соединение прервано. Пожалуйста, подтвердите это у системного администратора.»); } return 0;
},
Может ли кто-нибудь посоветовать мне, что я делаю неправильно? Заранее благодарим.
Параметр onStateChange
, указывающий, была ли ошибка подключения, — aStatus
. Например, вы можете использовать Components.isSuccessCode
:
if ((aFlag & STATE_STOP) &&! Components.isSuccessCode (aStatus)) {alert ("Кажется, что ваше соединение прервано. Пожалуйста, подтвердите это у системного администратора.");}
Вы также можете сравнить aStatus
с Components.results.NS_ERROR_UNKNOWN_HOST
, что соответствует ошибке «Сервер не найден». Однако, если соединение не работает, может возникнуть ряд других ошибок, например NS_ERROR_CONNECTION_REFUSED
(сбой подключения), NS_ERROR_UNKNOWN_PROXY_HOST
(прокси не найден), NS_ERROR_OFFLINE
(попытка подключения в автономном состоянии) . Вы можете найти полный список кодов сетевых ошибок в nsNetError.h.
Удаленный сервер не найден в XMPP
i отправить пакет клиенту
И получил
в чем проблема ???
У вас две проблемы с этой строфой.
1) Вы набрали localhsot вместо localhost.
2) Вы добавляете «от» в строфу. Предполагая, что вы являетесь клиентом, отправляющим это, лучше не использовать «от» и позволить серверу поставить отметку о себе, как если бы вы ошиблись с «от», сервер начнет отклонять строфы. В вашем случае это неправильно, поскольку вы используете голый JID клиента, а не полный JID.
Попробуйте сначала разрешить их, а затем посмотрите, что произойдет.