我正在嘗試學習XMPP協議以使Web應用程序可以使用它。因此,我安裝了名爲openfire的XMPP守護進程,我將其配置爲支持HTTP-Bind,我可以使用Pidgin和默認的XMPP協議連接到它。無法通過HTTP綁定連接到XMPP服務器(openfire)
問題是我無法使用HTTP綁定連接到它。在pidgin中,我有一些選項,當我連接到指定方法時,我想用來連接到服務器。如果我將它設置爲使用HTTP-Bind進行連接,則會失敗,並顯示以下消息:沒有給出會話標識。
在客戶端,我會使用Strophejs嘗試進行此連接,但它不起作用。我有這樣的事情:
var conn = new Strophe.Connection("http://chat.dev/http-bind");
哪裏http://chat.dev/http-bind是位置的XMPP守護進程。我已將這個位置轉發到Apache虛擬主機的正確端口上,因此http://chat.dev/http-bind將指向與http://127.0.0.1:7070相同的內容。
conn.connect("test5", "test5", some_callback);
function some_callback(status)
{
if (status == Strophe.Status.CONNECTING) {
console.log('Strophe is connecting.');
} else if (status == Strophe.Status.CONNFAIL) {
console.log('Strophe failed to connect.');
} else if (status == Strophe.Status.DISCONNECTING) {
console.log('Strophe is disconnecting.');
} else if (status == Strophe.Status.DISCONNECTED) {
console.log('Strophe is disconnected.');
} else if (status == Strophe.Status.CONNECTED) {
console.log('Strophe is connected.');
// connection.disconnect();
}
}
這將返回:「Strophe正在連接」。
呃,我不知道答案,我一直在讀一本關於XMPP和Strophe的書,但是這本書沒有涉及這方面,我發現的文檔也沒有幫助我。
謝謝。
聽起來像OpenFire未正確配置爲使用BOSH和HTTP綁定。 –
我如何檢查這是否屬實? –
請告訴我們關於您的設置的更多信息。您的Openfire守護程序是否與您的Web服務器在相同的主機/ IP上運行?在哪個端口上配置Openfire以偵聽傳入的BOSH連接?你正在加載Strophe'flxhr'插件嗎?您是否可以通過指向「http://chat.dev:9090」在瀏覽器中加載Openfire管理界面? – JAAulde