【问题标题】:Cannot add members to existing room using openfire REST API无法使用 openfire REST API 将成员添加到现有房间
【发布时间】:2016-08-21 09:31:50
【问题描述】:
openfire 4.0.2
https://github.com/igniterealtime/REST-API-Client

我正在使用 REST API 客户端将用户添加到房间。 查看调试信息似乎返回成功 201。但是,该用户未添加到聊天室。

1 > POST http://10.10.20.160:9090/plugins/restapi/v1/chatrooms/coffeeroom/members/steve@localhost.localdomain  
1 > Authorization: Basic YWRtaW46Zm9ydW0xOA==  
1 > Content-Type: application/xml  

Apr 06, 2016 12:31:51 AM org.glassfish.jersey.filter.LoggingFilter log  
INFO: 1 * Client response received on thread http-nio-8080-exec-2  
1 < 201  
1 < Access-Control-Allow-Credentials: true  
1 < Access-Control-Allow-Headers: origin, content-type, accept, authorization  
1 < Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, HEAD  
1 < Access-Control-Allow-Origin: *  
1 < Content-Length: 0  
1 < Date: Tue, 05 Apr 2016 17:31:51 GMT  
1 < Expires: Thu, 01 Jan 1970 00:00:00 GMT  
1 < Set-Cookie: JSESSIONID=153sgnfp1oi1x16rjo68kvbwz8;Path=/;HttpOnly  
1 < X-Frame-Options: deny  

我已使用 REST API 成功创建了新的群聊室,但无法向其中添加任何用户。使用此代码。

mRestXmppClient.getRestApiClient().addMember(roomName, username);

只是想知道我是否需要为用户、房间、角色添加任何特定设置才能将用户添加到聊天室?

在权限下(房间隶属关系) 我已将 steve@localhost.localdomain 添加到该房间的成员中。

但是,我仍然无法将成员添加到群聊室。我在这里错过了什么吗?我想知道是否需要修改房间的任何设置才能使其正常工作。这些是我要添加成员的房间的属性。

任何额外的帮助将不胜感激。

【问题讨论】:

  • 问题是 REST API 请求未将“steve@localhost.localdomain”添加到房间成员列表(您稍后手动添加的?),还是用户“steve@localhost.localdomain”的问题。 localdomain" 以后不能通过 XMPP 加入房间吗?
  • 问题无法加入房间。首先:我使用 openfire 管理控制台手动添加了 steve@localhost.localdomain。然后我使用我的 java 应用程序中的 REST API 尝试将 steve@localhost.localdomain 添加到房间。结果返回 201,但没有将 steve 添加到房间。有什么想法吗?
  • 如果不是“会员专用”房间,你也可以不加入房间吗?
  • 在房间属性的屏幕截图中,我已经检查了“仅限房间成员”所以我想我应该能够进入这个房间。我还有什么遗漏的吗?
  • 我的意思是,如果你取消选中“仅限会员”,每个人都可以加入房间。这行得通吗?

标签: openfire


【解决方案1】:

我猜你误解了流程/设计的工作原理。 通过例如通过 REST API 将用户添加到成员/管理员/弃权者/所有者列表并不意味着用户将作为具有此角色/从属关系的占用者被放置在那里。

这意味着用户只有关注从属关系(是普通会员或管理员等)。关于 MUC XMPP 术语的真正好的概述是 XEP:http://xmpp.org/extensions/xep-0045.html#terms-general

如果你想成为一个占用者,你需要连接到服务器并加入频道。之后,您将呈现为可能具有特定角色的居住者。

我建议您在此处阅读有关多用户聊天的更多信息:http://xmpp.org/extensions/xep-0045.html

【讨论】:

  • 我明白你的意思。我以为这个函数 restApiClient.addMember("chatroom1", "username");将使“用户名”作为居住者加入房间。 REST API 是否有可能具有此功能以允许某人作为占用者加入房间?
  • REST API 插件无法做到这一点。你需要的是例如igniterealtime.org/projects/smack
猜你喜欢
  • 2020-08-21
  • 1970-01-01
  • 2016-11-27
  • 2021-10-03
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 2018-09-11
  • 2017-03-27
相关资源
最近更新 更多