XMPH 세션을 통해 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 만 $의 CONN 객체의 fulljid가 비어 유지하고 내가 세션 내의 Openfire 관리 콘솔을 시작 볼 수 없습니다를 얻고있다.
주어진 자원을 사용하고 jid/rid/sid를 strophe로 전달하여 수동으로 jid를 만들면 첨부 된 상태가되어 클라이언트에서 BOSH IP로 호출이 표시되지만 여전히 표시되지 않습니다. 세션과 나는 연결을 사용할 수 없습니다.
좌향 선회 클라이언트 코드 : 준비 문서에
를 호출 :
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
감사합니다. 나는이 동작이 예상대로 일어 났을 것이라고 생각했습니다. –