问题标签 [multiuserchat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
408 浏览

xmpp - 数百万私人 MUC 房间或 ejabberd 中的动态 XEP-0033 对话:什么是最好的?

需求

我有以下情况:

  • ~10万玩家
  • 50 名管理员

每个玩家可以与每个管理员进行 1:1 对话;玩家甚至可以在单独的对话中同时与所有管理员进行一对一的对话。

但在任何时候,其中一个对话的管理员可能会邀请另一个(或许多)管理员加入这数千个对话中的一个。

额外的:

  • 使用 MAM 存储的所有消息default:always
  • 流管理与resend_on_timeout:true.
  • 玩家无法向其他玩家发送消息

例子:

  • 假设玩家 1 有 3 个活跃的单独对话P1:Admin A, P1:Admin G, P1:Admin H
  • 然后管理员 A 邀请管理员 H 加入P1:Admin A对话(管理员 H 被邀请加入管理员 A 的对话不会关闭活动P1:Admin H对话),玩家将拥有这些活动对话:
    • P1:Admin A + Admin H, P1:Admin G,P1:Admin H

解决方案 #1:Muc 房间

我正在考虑将所有对话变成私人不可发现的 MUC 房间(当用户想与管理员聊天时,客户端将发出一个自定义 IQ,我将开发的 ejabberd 模块将处理并创建房间,将玩家和管理员自动在这个新房间中列入白名单)。

对于可能意味着 500 万个 MUC 房间的示例场景。我知道 500 万次正常聊天是很常见的情况,但是有这么多房间可以吗?

解决方案 #2:XEP-0033 扩展节寻址

对于此解决方案,我正在考虑将消息识别为具有扩展元素的房间的一部分channel。这样,收件人可以进入并进行对话。

但这没有 MUC 房间的安全控制,只有白名单用户可以在频道中交谈。有没有办法用这种方法克服这种隐私问题?

channel使用该元素的示例:

P1:管理员 A + 管理员 B,房间 1

管理员 B 离开,P1:管理员 A,仍然是房间 1

最终解决方案?

考虑到客户端和服务器定制不是问题......考虑到所有要求,哪个解决方案是最好的?还是有其他最优解?

0 投票
1 回答
216 浏览

spring - Spring Integration Xmpp 4 - 发送创建 muc 请求

我用 xmpp 配置了 spring 集成,我可以向其他 jid 发送消息。要构建消息,我使用以下方法:

现在我想创建一个聊天室,我试图弄清楚如何构建一条包含多用户聊天请求的消息,但没有成功。

有什么帮助吗?

使用: XmppHeaders.TYPE设置为"groupchat"XmppHeaders.TO“myroommmm”不起作用.. xmpp 服务器日志:

我正在运行集成测试

更新2:使用:

我收到以下错误:

(服务器已正确配置并且正在运行)

0 投票
2 回答
808 浏览

xmpp - ejabberd MUC 客户端在创建房间后无法获取配置表单

我试图从我的 XMPP 客户端与 Ejabberd 通信创建一个 MUC 房间。

这是我的 Ejabberd muc 配置:

这是我从客户端获得的 muc 功能:

当我尝试从客户端创建一个 MUC 房间时:

我得到了一个新房间创建的响应:

当我尝试获取配置表单以设置房间字段时:

我从 Ejabberd 服务器得到了答案:

所以这是我的问题:

  • 为什么 Ejabberd 服务器以相同类型响应我的查询,但不以 type='result' 或 type='error' 之类的方式响应?我用 type='set' 尝试了其他查询,同样的事情发生了。

  • 为什么没有类似 :<feature var='http://jabber.org/protocol/muc#owner'/><feature var='http://jabber.org/protocol/muc#admin'/>muc 服务的功能?

  • 似乎可以为房间创建 v-card,它是如何工作的?它是否需要在服务器端进行一些额外的配置?

0 投票
1 回答
190 浏览

xmpp - Ejabberd 待处理的 MUC 消息

我正在使用 ejabberd 服务器,并且正在尝试为移动设备实现典型的推送通知。

此刻,几乎一切都已经运转良好。

除了一件事:用户要阅读的待处理消息。

来自简单聊天的未决消息可以从假脱机表中计算出来,其中包含所有待传递的消息。

但是,我不知道在哪里可以找到来自 MUC 聊天的待处理消息。

有什么办法知道吗?

谢谢!!

0 投票
1 回答
170 浏览

mobile - 使用 XMPP 的持久组

我正在使用XMPPMUC来创建一个组,并且在用户在线之前它工作正常。用户下线后立即离开群组。我希望用户在离线时留在房间里,并在他回来时收到看不见的消息。如何在 XMPP 中实现这一点。以及如何动态创建组和添加用户。

我可以让用户一直在线吗?这是一个好方法吗?如果是这样,那么我该怎么做 - 让用户一直在线

0 投票
3 回答
3106 浏览

java - 多用户聊天中的 smack 存在监听器

多用户聊天中的 smack 存在监听器没有被调用。使用 Smack Api 登录,然后添加roster.addRosterListener(mRoasterListener); 但是当聊天室的其他用户的存在发生变化时,无法成功收听。我尝试了以下代码来让存在监听器工作:

和这个类来听存在变化......

我尝试了 stackoverflow 提供的许多链接,但未能获得任何成功。请帮忙!

0 投票
2 回答
1481 浏览

xmpp - 如何在 Prosody XMPP 服务器中设置聊天室密码?

我是 Prosody XMPP 服务器的新手。我已经设置了服务器并且可以创建聊天室。现在我想知道如何将特定聊天室限制为给定的一组用户。

欢迎提出建议...

0 投票
1 回答
1947 浏览

java - 在 XMPP 中加入 MUC 房间时出错(smack)

我正在尝试创建一个多用户聊天。加入房间时出现错误。创建聊天室的方法:

加入MUC房间的方法:

获取用户加入的房间列表:

当用户加入房间时,我收到这条消息:“这个房间被锁定,直到配置被确认。”

0 投票
2 回答
1509 浏览

java - 在 XMPP(SMACK) 中向 MUC 添加成员

我正在尝试使用 XMPP(smack) 创建多用户聊天。创建房间后,当我尝试加入聊天室时,在ofmucmember中没有加入成员的条目。

房间代码的创建如下:

加入创建房间的代码如下:

来自服务器的响应:

我没有收到任何错误。谁能告诉我这里哪里错了?

0 投票
0 回答
255 浏览

java - WebClient SparkWeb vs JwChat for openfire 服务器 (XMPP)

我是 XMPP 的新手。我正在尝试在带有 xmpp 的 spring 框架项目中创建一个多用户聊天。我正在使用openfire作为聊天服务器。我对我应该使用什么客户端进行聊天感到非常困惑。我经历过一些像SparkWebJwChatstrophej。但不知道我应该去哪一个?