我試圖通過XMPHP預先綁定XMPP會話並將rid/sid/jid傳遞給strophe客戶端以附加到會話。與XMPHP連接到BOSH服務後,fulljid爲空
連接代碼在這裏:
$conn = new CIRCUIT_BOSH('server.com', 7070, $username, $pass, $resource, 'server.com', $printlog=true, $loglevel=XMPPHP_Log::LEVEL_VERBOSE);
$conn->autoSubscribe();
try{
$conn->connect('http://xmpp.server.com/http-bind', 1, true);
$log->lwrite('Connected!');
}catch(XMPPHP_Exception $e){
die($e->getMessage());
}
我正在擺脫和SID,但在$康恩對象fulljid保持爲空,我不能看到一個會話我的Openfire管理控制檯上啓動。
如果我通過使用給定資源手動創建jid並將jid/rid/sid傳遞給strophe以在attach中使用,我獲得了ATTACHED狀態,並且我看到了從客戶端到BOSH ip的呼叫,但我仍然看不到一個會話,我不能使用連接。
的strophe客戶端代碼:
叫上文件準備:
var sid = $.cookie('sid');
var rid = $.cookie('rid');
var jid = $.cookie('jid');
$(document).trigger('attach', {
sid: sid,
rid: rid,
jid: jid,
});
$(document).bind('attach', function (ev, data) {
var conn = new Strophe.Connection(
"http://xmpp.server.com/http-bind");
conn.attach(data.jid, data.sid, data.rid, function (status) {
if (status === Strophe.Status.CONNECTED) {
$(document).trigger('connected');
} else if (status === Strophe.Status.DISCONNECTED) {
$(document).trigger('disconnected');
} else if (status === Strophe.Status.ATTACHED){
$(document).trigger('attached');
}
});
Object.connection = conn;
});
我覺得上沒有正確創建會話的XMPPHP側的問題開始。 '附加'被觸發但從未'連接',狀態'連接'應該被髮送? 我錯過了什麼?
附加到會話時,只會返回ATTACHED狀態。您可以通過爲xmlOutput和xmlInput提供函數來檢查發送和接收的內容。類似conn.xmlOutput = function(body){console.log(body); } – brimil01
謝謝。我只是認爲這種行爲是預期的。 –