javascript - 在 xmpp 群聊中发送聊天标记
问题描述
我正在使用 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());
}
}
解决方案
当您收到群聊消息时,您会收到此节:
<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>
如您所见,此消息的类型是“群聊”。所以你要做的就是寻找这种类型,当你收到它时显示标记。
如果您需要更多详细信息,这里是我找到它的 XEP。 https://xmpp.org/extensions/xep-0045.html#message 该节在第 7.4 节下。
推荐阅读
- css - 如何在 Flexbox 容器中的元素之间创建边框?
- linux-kernel - PTE 标志在哪里定义(Linux)?
- javascript - Discord JS:通过机器人创建频道时如何发送消息
- react-native - React Native WebView goBack 丢失参数 - Android
- html - 单击后更改A中的颜色
- c - c语言,全局符号,局部符号说明
- reactjs - 在 nginx 上隐藏上游 301 响应(反应应用程序)
- javascript - Lodash findKey() 方法
- redis - redis 是否提供了对缓存对象进行部分更新的选项
- typescript - 来自对象的所有嵌套值的类型