问题标签 [mongoose-im]

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 回答
787 浏览

android - 存在类型不可用离开(离开 - 资源暂时离开)未收到元素

我在 ubuntu 上安装了mongooseIM 2.0.0服务器。我使用 smack 4.2.2 客户端库,后端数据库是 postgres。当我的应用程序按照存在节格式进入后台模式时,我将发送到服务器

打码

发送节

在上面的节show元素中意味着资源暂时离开,这意味着用户已经连接到服务器上,但其他名册出现,用户最后一次被视为离线。

上面的节收到成功,StanzaListener但只有一次。当用户再次请求获取名册存在类型并且LastActivity来自该用户时,它将给出存在类型始终在线。

以下StanzaListener我得到了show元素

按照节格式,我试图LastActivity从用户那里获得

请求最后一次看到的 smack 代码。

结果

它总是会给出 seconds=0,LastActivity所以我将再次发送请求以获取名册存在类型,并且我得到以下节结果。

获取Roster存在的smack代码

结果

在上面的节结果中,我没有摆脱元素。

我们需要任何服务器端配置吗?我们正在关注此链接可扩展消息传递和存在协议(XMPP):即时消息传递和存在以在服务器端发送节请求。

0 投票
0 回答
429 浏览

android - 只允许占用者向会议发送消息

正如 XEP-045 中提到的,用户一旦离线就离开了房间。因此,考虑到这一点,一旦连接通过身份验证,我就会加入房间。但是当我尝试发送消息时,我收到了这个错误消息

一旦我的连接是身份验证,事件就认为我已经加入了房间。

这是我从客户端发送给组的存在节

SMACK : 发送

SMACK : 接收

0 投票
1 回答
351 浏览

android - 当组成员尝试获取成员列表时获得禁止的身份验证

我正在尝试使用 getMembers() 获取成员列表,但我收到“错误代码:403,禁止身份验证”,尝试获取成员列表的用户是组的成员,但如果我这样做了楼主同样的操作就可以成功拿到一个list。

这是我获取成员列表的配置'muc#roomconfig_getmemberlist' : [moderator, participants, visitor]

并且在 xep-045 中也非常清楚地提到“服务还应该将成员列表返回给仅限成员的房间中的任何居住者;即,当房间中的成员请求成员列表时,它不应该产生错误。”

那么我在这里缺少什么?

这些是捕获数据包

发送(0):

SMACK:接收(0):

编辑: 还有一件事是成员具有参与者的角色,但我注意到在这种情况下角色值为 null。

在此处输入图像描述

0 投票
0 回答
349 浏览

android - Android : XMPP MUCLight Smack 监听群聊消息

在 XMPP 服务中,我连接到 xmpp 服务器,一旦建立连接,我将获取我当前所在的所有组,并将消息侦听器添加到每个组。
List<Jid> occupiedRooms = multiUserChatLightManager.getOccupiedRooms(JidCreate.domainBareFrom(ConstantXMPP.XMPPService.MUCLightService)); for (Jid jid : occupiedRooms) { MultiUserChatLight multiUserChatLight = multiUserChatLightManager.getMultiUserChatLight(JidCreate.entityBareFrom(jid.toString())); MUCLightRoomConfiguration configuration = multiUserChatLight.getConfiguration(); multiUserChatLight.addMessageListener(new org.jivesoftware.smack.MessageListener() { @Override public void processMessage(Message message) { Log.e("Group message/n content", "" + message.toXML()); if (message.getBody() != null && message.getBody().length() > 0) { Log.e("Message Sender", message.getFrom().asBareJid().toString()); Log.e("Text Message", message.getBody()); handleGroupTextMessage(message); } } }); } }

在服务中,这就是我向 muclight 房间添加听众的方式,并且当聊天活动未打开时我会收到消息,即,当用户处于最近的聊天列表活动中时,我会收到消息,但只要我打开聊天活动我没有收到任何数据包或消息,

addMessageListener 方法实际上是把消息监听器放入

所以这就像处理每个组的所有听众,但我仍然无法让这件事发挥作用

0 投票
1 回答
420 浏览

github - 如何在 MongooseIM 中创建和编译自定义模块

系统信息:

MongooseIM 版本:3.0.0

安装自:pkg

Erlang/OTP 版本:18

Ubuntu 16.04

我在为自定义模块创建标准基础时遇到问题。我想创建一个简单的 hello world 程序,如ejabberd 的文档中所述。

但是,我无法让它为 MongooseIM 工作。是否有关于如何执行此操作的说明?作为一个初学者,我只是在寻找构建自己的模块的构建块,而我所看到的一切对于我目前想要实现的目标来说都有些过于复杂。

这是我的模块的代码:(取自 ejabberd)https://docs.ejabberd.im/developer/extending-ejabberd/modules/#mod-hello-world

我的代码示例

这是我的日志错误:

错误日志

我在我的配置文件中添加了以下行以及所有其他正在运行的模块: {mod_hello_world, []}

我假设它与编译有关,并且没有为模块创建 .beam 文件以及特定于 MongooseIM 的一些语法错误。当使用预构建的 pkg 而不是从源代码安装时,我也不熟悉编译模块的文档。

0 投票
1 回答
81 浏览

ios - 是否可以使用 XMPP Framework iOS 更改 ejabber jId

是否有任何选项可以使用 XMPP Framework iOS 更改我的 jId(ejabberd ID)?假设目前我的 jID 是 12345@localhost。我想将其更改为 6789@localhost。它就像 WhatsApp 中的更改电话号码功能。

任何人都可以帮助我吗?更改它的类或方法。谢谢!

0 投票
1 回答
257 浏览

erlang - 从源代码编译 MongooseIM 时 rebar_core 中未捕获的错误

我想从源代码编译 MongooseIM,但在 Ubuntu 上编译代码时出现一些错误:

Ubuntu 版本:Ubuntu 18.04.1 LTS 64 位(最新) Erlang 版本:21(最新)

使用以下命令进行编译后

  1. $ git clone https://github.com/esl/MongooseIM
  2. $ sudo ./rebar3 编译

以下是 rebar3.crashdump 的内容:

问题:

  1. 为什么它在“home/tristan/Devel/rebar3”路径中做某事?因为我只有 1 条与之相似的路径,即 'home/ricky/...'
  2. 我什至安装了钢筋

$ sudo apt-get install rebar

$螺纹钢-V

rebar 2.6.4 19 20161102_054252 没有可用的 VCS 信息。

但同样的错误3。我在删除最新版本后尝试使用较低版本的erlang ie 20,但仍然没有帮助。

请提出一些建议

0 投票
1 回答
966 浏览

node.js - 如何将 Ejabberd 或 MongooseIM 与 Node.js(或 Django)连接起来

我想为使用 node.js(或 Django)和 Ejabberd 或 MongooseIM 的聊天应用程序开发后端服务器。并在应该具有推送通知的 React Native 应用程序上使用此 API。

这个想法是通过我自己的服务器管理用户配置文件和元数据以及身份验证(OAuth 2.0 - 社交登录),然后让聊天内容管理到 Ejabberd 或 MongooseIM 服务器。

问题在于如何在服务器之间建立连接。我想通过我的服务器登录,并且不让用户知道现有的 Ejabberd 或 MongooseIM 服务器。

关于如何在服务器之间建立连接的任何想法?

0 投票
1 回答
181 浏览

xmpp - MUC 消息的 MongooseIM 推送通知(不是 MUC 灯)

我试图将 MongooseIM 与 mod_muc 一起使用(只是 mod_muc,而不是 mod_muc_light),发现用户在离线时不会收到他们在 MUC 房间中可能错过的消息的推送通知。我将 MongooseIM 与 mod_event_pusher_push_plugin_defaults 和 MongoosePush 服务一起使用。推送通知适用于 MUC 灯,但不适用于 MUC 消息。是否可以配置 MongooseIM 为错过的 MUC 消息向用户发送推送通知?或者我该如何实施?请帮我

0 投票
4 回答
748 浏览

java - 使用 WebSocket vs XMPP vs MQ 实时数据显示的解决方案

我正在尝试开发一个在线拍卖平台。

与特定拍卖相关的客户将在其中看到实时数据,并且他们也将能够相互通信。

我正在考虑将 Java 作为我的后端平台,它将基于 SOA。我正在寻找诸如可用于向客户显示实时数据的最佳技术解决方案之类的意见。

到目前为止,我已经比较了 Like -

  • 基于 XMPP 的解决方案,例如 (Mongoose/Ejabberd/OpenFire)
  • 基于 Websocket 的解决方案,例如 Atmosphere
  • 消息缓冲区,如 RabbitMQ/ActiveMQ

哪种协议将是处理 1M 并发用户的实时广播数据 + 聊天的好方法。