2016-01-28 84 views
2

我正在使用XMPP創建一個使者。 我沒有成功連接到openfire服務器。如何在openfire在線狀態下將其切換到在線狀態?

控制檯日誌中還收到「連接」和「連接」狀態,但我的Openfire管理控制檯上選中了會議:

名稱:匿名
資源:一些值
節點:本地
狀態:已驗證
存在:離線

如果我使用spark客戶端程序,它將狀態更改爲聯機狀態。

我該如何改變這種情況? 我應該添加更多的代碼行嗎?

var jid = 'id'; 
var pw = 'testpw'; 
var BOSH_SERVICE = 'http://127.0.0.1:7070/http-bind/'; 
var connection = null; 

connection = new Strophe.Connection(BOSH_SERVICE); 
connection.connect(jid, pw, callback); 

function callback(status){ 
    console.log(status); 
} 

回答

3

要聲明您的狀態,你必須在回調函數中添加這些行:

if (status == Strophe.Status.CONNECTED) { 
    connection.send($pres()); 
} 

如果您需要基於XMPP網絡客戶端的例子(使用Strophe.js)檢查下面我Plunker :

http://plnkr.co/edit/EhQHDsYpDhrECmaaIlZO

+0

感謝海狸。添加connection.send($ pres())代碼後,我檢查了openfire管理控制檯中的狀態。但存在狀態仍然離線..和console.log正在連接結束。如果使用不connection.send($ pres())。 console.log正在連接並連接 – ofleaf

+0

但是,您是否嘗試過我的Plunker客戶端(將其調整爲Openfire配置)? – beaver

+0

我現在試過了。它工作很棒!!我會發現我的代碼問題。由於海狸:) – ofleaf

0

新增發($ PRES())

if(status === Strophe.Status.CONNECTED){ 
    connection.send($pres()); 
    console.log('connected'); 
} 

enter image description here

就可以看到連接

而且沒有添加發送($ PRES())

if(status === Strophe.Status.CONNECTED){ 
    console.log('connected'); 
} 

enter image description here

可以看到連接和連接日誌

+0

和存在依然離線.. – ofleaf