【问题标题】:How to add participants to XMPP chat room in C#?如何在 C# 中将参与者添加到 XMPP 聊天室?
【发布时间】: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>"

请帮忙。

任何帮助将不胜感激。

【问题讨论】:

    标签: c# windows windows-phone-7 xmpp ejabberd


    【解决方案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。有用。现在我想获取房间的所有用户信息,比如他们的角色和隶属关系。请告诉我我该怎么做。谢谢。
    猜你喜欢
    • 2012-12-15
    • 2017-12-27
    • 2014-06-17
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多