在第一组消息之后,strophe.muc插件不会对以下消息做出反应。 我从房间里获得了第一个存在,消息和名单,但所有后续消息和存在节都不会触发这些功能。 我认为这些线路有问题:
this.rooms[room].addHandler('message', msg_handler_cb);
this.rooms[room].addHandler('presence', pres_handler_cb);
this.rooms[room].addHandler('roster', roster_cb);
我的代码:
join: function(){
console.log("joining room");
var self = this;
connection.muc.join("room@conference.server", "john", self.onMessage, self.onPresence, self.onRoster);
},
onMessage: function(message){
var self = this;
var body = $(message).text();
var from = $(message).attr("from");
console.log(body);
console.log(from);
},
onPresence: function(presence){
console.log("onPresence");
console.log(presence);
},
onRoster: function(roster){
console.log("onRoster");
console.log(roster);
},
答案 0 :(得分:6)
希望继续被调用的处理程序应该返回true。
所以只需将return true;
附加到所有处理程序。
在文档中提到: http://strophe.im/strophejs/doc/1.0.2/files2/strophe-js.html