Strophe.Connection.addHandler 및 Strophe.Connection.sendIQ에 대한 질문이 있습니다.Strophe.Connection.addHandler는 Strophe.Connection.sendIQ를 호출하는 경우 작동하지 않습니다.
Strophe.Connection.addHandler(context.onMessage, null, 'message')
onMessage = function (msgXML){
var to = msgXML.getAttribute('to');
var from = msgXML.getAttribute('from');
var fromBareJid = Strophe.getBareJidFromJid(from);
var type = msgXML.getAttribute('type');
var elems = msgXML.getElementsByTagName('body');
var body = elems[0]
var text = Strophe.getText(body);
return true;
}
을하지만 통화하려면 addHandler, 다시 전화하지 않을 것의 onMessage 방법,하지만 방법 후 setContactData를 호출하는 경우 sendIQ 후 호출 할 수 있습니다 onRoster :하실 수 있습니다 코드는 작동합니다.
setContactData = function(){
var iq = $iq({
type: 'get'
}).c('query', {
xmlns: 'jabber:iq:roster'
});
Strophe.Connection.sendIQ(iq, context.onRoster);
}
onRoster = function(iq){
$(iq).find('item').each(function(){
var jid = $(this).attr('jid');
// transform jid into an id
var jid_id = CommonUtil.getNameFromJid(jid);
userList = userList + "','" + jid_id;
});
왜 onMessage를 콜백 할 수 없습니까? 근본 원인은 무엇입니까? 내가 누락 된 것?
마지막 기준을 설정 한 후에 작동합니다. –