Xmpp Ejabberd MucSub:当成员发送状态不可用时,服务不响应

Xmpp Ejabberd MucSub:当成员发送状态不可用时,服务不响应,xmpp,ejabberd,multiuserchat,Xmpp,Ejabberd,Multiuserchat,我正在与Ejabberd19.09和mucsub进行持续的小组对话 当组成员发送状态不可用时,有时服务器根本不响应。 如果我们在发送状态不可用之前的状态可用后重复相同的测试,服务器会做出响应。 无论如何,显然,我们的房间占用率没有变化 这是预期的行为吗 第一次测试: 复制第一次测试的步骤: 管理员test1创建一个房间roomX(仅限会员) 管理员test1邀请并订阅用户test2 理由 邀请被自动接受,用户test2现在是会议室成员,他可以发送消息并订阅所有活动 成员test2想要放弃

我正在与Ejabberd19.09和mucsub进行持续的小组对话

当组成员发送状态不可用时,有时服务器根本不响应。 如果我们在发送状态不可用之前的状态可用后重复相同的测试,服务器会做出响应。 无论如何,显然,我们的房间占用率没有变化

这是预期的行为吗

第一次测试: 复制第一次测试的步骤:

  • 管理员
    test1
    创建一个房间
    roomX
    (仅限会员)
  • 
    
  • 管理员
    test1
    邀请并订阅用户
    test2
  • 
    理由
    
  • 邀请被自动接受,用户
    test2
    现在是会议室成员,他可以发送消息并订阅所有活动
  • 成员
    test2
    想要放弃房间,并发送状态类型=不可用
  • 
    离开
    
    结果:

    • 服务不响应成员请求
    • 房间占用率没有变化:会员的从属关系仍然有效 “成员”,角色仍为“成员”,订阅仍处于活动状态
    第二次测试: 复制第二次测试的步骤:

  • 管理员
    test1
    创建一个房间
    roomX
    (仅限会员)
  • 管理员
    test1
    邀请并订阅用户
    test2
  • 邀请被自动接受,用户
    test2
    现在是会议室成员,他可以发送消息并订阅所有活动
  • 成员
    test2
    发送一个presence type=available(理论上这是多余的,但它是作为此测试的一部分特意制作的)
  • 
    
  • 成员
    test2
    想要放弃房间,并发送状态类型=不可用
  • 结果

    • 服务回应会员
    • 房间占用率没有变化:会员的从属关系仍然有效 “成员”,角色仍为“成员”,订阅仍处于活动状态
    第一个测试:步骤: 管理员邀请会员

    我想用

    发送不可用的状态信息

    为什么?它应该是一个信息,而不是一个存在:

    被邀请人可以选择正式拒绝(而不是忽略)邀请 邀请;这是发送者可能想要的东西 被告知。为了拒绝邀请,被邀请者必须 将以下格式的消息发送到自身:


    我认为你错过了第一步,那就是:

    <presence to='test2-157@conference.x.com/test1'  id='s6MLD-390'><x xmlns='http://jabber.org/protocol/muc'></x></presence>
    

    此测试的目标不是拒绝邀请(这很好),而是在成为组成员一段时间后离开组。在“第一次测试”中,我不发送状态,但在mucsub中,加入是自动的。在“第二次测试”中,我发送您指示的内容,检查代码块,以以下开头: