问题标签 [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.
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
最终解决方案?
考虑到客户端和服务器定制不是问题......考虑到所有要求,哪个解决方案是最好的?还是有其他最优解?
spring - Spring Integration Xmpp 4 - 发送创建 muc 请求
我用 xmpp 配置了 spring 集成,我可以向其他 jid 发送消息。要构建消息,我使用以下方法:
现在我想创建一个聊天室,我试图弄清楚如何构建一条包含多用户聊天请求的消息,但没有成功。
有什么帮助吗?
使用: XmppHeaders.TYPE
设置为"groupchat"
和XmppHeaders.TO
“myroommmm”不起作用.. xmpp 服务器日志:
我正在运行集成测试
更新2:使用:
我收到以下错误:
(服务器已正确配置并且正在运行)
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,它是如何工作的?它是否需要在服务器端进行一些额外的配置?
xmpp - Ejabberd 待处理的 MUC 消息
我正在使用 ejabberd 服务器,并且正在尝试为移动设备实现典型的推送通知。
此刻,几乎一切都已经运转良好。
除了一件事:用户要阅读的待处理消息。
来自简单聊天的未决消息可以从假脱机表中计算出来,其中包含所有待传递的消息。
但是,我不知道在哪里可以找到来自 MUC 聊天的待处理消息。
有什么办法知道吗?
谢谢!!
mobile - 使用 XMPP 的持久组
我正在使用XMPP和MUC来创建一个组,并且在用户在线之前它工作正常。用户下线后立即离开群组。我希望用户在离线时留在房间里,并在他回来时收到看不见的消息。如何在 XMPP 中实现这一点。以及如何动态创建组和添加用户。
我可以让用户一直在线吗?这是一个好方法吗?如果是这样,那么我该怎么做 - 让用户一直在线
java - 多用户聊天中的 smack 存在监听器
多用户聊天中的 smack 存在监听器没有被调用。使用 Smack Api 登录,然后添加roster.addRosterListener(mRoasterListener); 但是当聊天室的其他用户的存在发生变化时,无法成功收听。我尝试了以下代码来让存在监听器工作:
和这个类来听存在变化......
我尝试了 stackoverflow 提供的许多链接,但未能获得任何成功。请帮忙!
xmpp - 如何在 Prosody XMPP 服务器中设置聊天室密码?
我是 Prosody XMPP 服务器的新手。我已经设置了服务器并且可以创建聊天室。现在我想知道如何将特定聊天室限制为给定的一组用户。
欢迎提出建议...
java - 在 XMPP 中加入 MUC 房间时出错(smack)
我正在尝试创建一个多用户聊天。加入房间时出现错误。创建聊天室的方法:
加入MUC房间的方法:
获取用户加入的房间列表:
当用户加入房间时,我收到这条消息:“这个房间被锁定,直到配置被确认。”
java - 在 XMPP(SMACK) 中向 MUC 添加成员
我正在尝试使用 XMPP(smack) 创建多用户聊天。创建房间后,当我尝试加入聊天室时,在ofmucmember中没有加入成员的条目。
房间代码的创建如下:
加入创建房间的代码如下:
来自服务器的响应:
我没有收到任何错误。谁能告诉我这里哪里错了?
java - WebClient SparkWeb vs JwChat for openfire 服务器 (XMPP)
我是 XMPP 的新手。我正在尝试在带有 xmpp 的 spring 框架项目中创建一个多用户聊天。我正在使用openfire作为聊天服务器。我对我应该使用什么客户端进行聊天感到非常困惑。我经历过一些像SparkWeb,JwChat和strophej。但不知道我应该去哪一个?