Как добавить обработчик onmessage для плагина strophe muc

Как добавить обработчик сообщений для плагина strophe MUC.

В настоящее время я добавил функцию обратного вызова для действия соединения.

Gab.connection.muc.join(room_name+"@muc.162.242.222.249",  login_id, 
function(message){ 

person user1752065    schedule 19.07.2016    source источник


Ответы (1)


Вы можете проверить типы сообщений в вашем общем обработчике сообщений:

connection.addHandler(onMessage, null, 'message', null, null, null);

...

function onMessage(msg) {
  var to = msg.getAttribute('to');
  var from = msg.getAttribute('from');
  var type = msg.getAttribute('type');
  var elems = msg.getElementsByTagName('body');

  if (type == "chat" && elems.length > 0) {
    var body = elems[0];
    console.log('CHAT: I got a message from ' + from + ': ' + Strophe.getText(body));
  } else if (type == "groupchat" && elems.length > 0) {
    var body = elems[0];
    var room = Strophe.unescapeNode(Strophe.getNodeFromJid(from));
    var nick = Strophe.getResourceFromJid(from);
    console.log('GROUP CHAT: I got a message from ' + nick + ': ' + Strophe.getText(body) + ' in room: ' + room);
  }
  // we must return true to keep the handler alive.  
  // returning false would remove it after it finishes.
  return true;
}
person beaver    schedule 20.07.2016
comment
Спасибо за ответ.. Теперь входящие сообщения работают после добавления этой строки. connection.addHandler (Gab.on_message, null, сообщение, групповой чат); - person user1752065; 20.07.2016
comment
Теперь следующее, что я хочу, это история сообщений для пользователя (когда пользователь нажимает на присоединенную группу). В настоящее время у меня есть следующий код для обработки архива. connection.mam.query(Strofe.getBareJidFromJid(Gab.connection.jid), {с: [email protected], макс.: 50, до: '', onMessage: функция (сообщение) { - person user1752065; 20.07.2016