如何在 C# 中将参与者添加到 XMPP 聊天室?
Posted
技术标签:
【中文标题】如何在 C# 中将参与者添加到 XMPP 聊天室?【英文标题】:How to add participants to XMPP chat room in C#? 【发布时间】:2014-01-08 12:39:45 【问题描述】:我想在现有组中添加参与者。为此,我将参与者的从属关系作为所有者和角色作为主持人。
我正在“conference.jabber.org”上进行测试。我成功创建了房间,但是当我在那个房间中添加一些参与者时,它给出了错误
"error code=\"405\" type=\"cancel\"> not-allowed xmlns=\"urn:ietf:params:xml:ns:xmpp-stanzas\" /></error>"
请帮忙。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:您不能直接将用户添加到聊天室;你可以邀请他们,但他们必须自己明确加入。 (尽管无论他们是否在房间内,您都应该能够修改他们的隶属关系,如果他们在房间内,您应该能够将他们的角色更改为主持人。)
邀请参与者有两种方法。 One involves sending the invite through the chat room:
<message
from='crone1@shakespeare.lit/desktop'
id='nzd143v8'
to='coven@chat.shakespeare.lit'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<invite to='hecate@shakespeare.lit'>
<reason>
Hey Hecate, this is the place for all good witches!
</reason>
</invite>
</x>
</message>
和the other involves sending a message directly to the user you're inviting:
<message
from='crone1@shakespeare.lit/desktop'
to='hecate@shakespeare.lit'>
<x xmlns='jabber:x:conference'
jid='darkcave@macbeth.shakespeare.lit'
password='cauldronburn'
reason='Hey Hecate, this is the place for all good witches!'/>
</message>
【讨论】:
感谢@Legoscia 的回复。但我只是想知道 Wats App 是如何工作的?假设,如果我创建一个群组并添加一些朋友,那么它不会要求邀请。它直接将它们添加到创建的组中。就像这样,我不想邀请我的朋友,而是想直接添加他们。请建议我任何解决方案。谢谢。 我猜要么是客户端自动接受了邀请,要么他们的系统使用了 XEP-0045 定义的标准 MUC 以外的其他东西。 请告诉我一件事,我怎样才能将任何用户设置为房间的管理员或所有者?你能分享那个 iq 或 xml 吗? 在 XEP-0045 的 section 10.3 (for owner) 和 section 10.6 (for admin) 中有示例。 再次感谢@legoscia。有用。现在我想获取房间的所有用户信息,比如他们的角色和隶属关系。请告诉我我该怎么做。谢谢。以上是关于如何在 C# 中将参与者添加到 XMPP 聊天室?的主要内容,如果未能解决你的问题,请参考以下文章
在 c# 中将 Object 标记添加到 X509Certificate2