菜鸟教程小白 发表于 2022-12-12 22:14:56

ios - XMPP 在不连接房间的情况下获取房间成员的数量


                                            <p><p>我有:ios 应用程序;
服务器:openfire;
框架:来自 Robby Hanson 的 xmppframework。</p>

<p>应用程序的逻辑是当用户登录后,应用程序会将他插入一个成员数量最少的随机房间。</p>

<p>应用程序成功从服务器获取所有房间的列表。
但我需要知道这些房间中的哪些房间有供用户使用的空位!</p>

<p>有一个名为“fetchmemberslist”的方法,但它只会在您连接到该房间时返回该房间的成员列表。</p>

<p>我需要在不连接房间的情况下也能做同样事情的东西。</p>

<p>想想如果我有 1000 个房间。使用这种方法,应用程序需要连接到每个房间,设置委托(delegate),激活,等待 IQ,移除委托(delegate),停用,然后通过一个数组找到成员最少的一个。
是不是太过分了?</p>

<p>我已经挖掘了整个互联网,当你连接到一个房间时,一切都会导致获得一个成员列表。</p>

<p>有没有办法在不连接房间的情况下做到这一点。</p>

<p>非常感谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>1) <code>fetchMemberList:</code> 查询房间成员,而不是现在在房间里的人的列表。你真的要成员(member),而不是在线用户数吗?无论如何,如果您是房间管理员,则此查询无需加入房间即可工作。</p>

<p>2) 如果你想查询在线用户,你应该使用不同的查询 - 见 <a href="http://xmpp.org/extensions/xep-0045.html#disco-roomitems" rel="noreferrer noopener nofollow">http://xmpp.org/extensions/xep-0045.html#disco-roomitems</a> </p>

<p>3) 此外,没有人可以禁止您在服务器端实现房间成员/在线计数并创建自定义查询,如 <code><iq id='123' type='get'><freeroom xmlns='my :freeroom:query'/></iq></code> 带有房间 JID 的响应,例如 <code><iq id='123' type='result'><freeroom xmlns='my:freeroom:query'>< jid>[email protected]</jid></freeroom></iq></code> 房间名是由服务器自己找到的。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - XMPP 在不连接房间的情况下获取房间成员的数量,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23542883/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23542883/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - XMPP 在不连接房间的情况下获取房间成员的数量