отправить маркер чата в групповом чате xmpp - PullRequest
0 голосов
/ 15 мая 2019

Я создаю чат-приложение, используя xmpp и angular 7

Я хочу, чтобы маркер чата отображался, когда пользователь отправляет сообщение другому пользователю.
это работает, если я отправляю сообщение в чате один на один но это не работает, если это групповой чат

что я должен изменить в своем коде?

 sendChatMarker(to: string, messageId: string, messagetype: string, marker: string, connection) {
//create message stanza for the chat marker

  let chatMarker = $msg({
    to: to,
    from: connection.jid,
    id: generateUUIDv4(),
  })
    .c(marker, {
      xmlns: this.xmppNamespacesService.chatMarkerNS,
      id: messageId
    })
    .up()
    .c("store", {
      xmlns: this.xmppNamespacesService.messageProcessingHintsNS
    }); //to archive chat markers

  //send the chat marker
  connection.send(chatMarker.tree());
  console.log(marker + " chat Marker is sent.", chatMarker.tree());
    }
  }

1 Ответ

1 голос
/ 15 мая 2019

Когда вы получаете сообщение группового чата, вы получаете эту строфу:

<message
    from='coven@chat.shakespeare.lit/thirdwitch'
    id='hysf1v37'
    to='crone1@shakespeare.lit/desktop'
    type='groupchat'>
  <body>Harpier cries: 'tis time, 'tis time.</body>
</message>

Как видите, тип этого сообщения - groupchat. Итак, что вы должны сделать, это найти этот тип, и когда вы получите его, покажите маркер.

Если вам нужна дополнительная информация, вот XEP, где я ее нашел. https://xmpp.org/extensions/xep-0045.html#message Раздел находится в разделе 7.4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...