问题标签 [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.
xmpp - MongooseIM create_room 命令未知
我是 MongooseIM 的新人。我已经设置了服务器并且能够在两个用户之间交换消息。现在我正在尝试设置服务器以启用 MUC。
我在 ejabberd.conf 文件中启用了 mod_muc。在执行 create_room 命令时,错误提示:
有什么我可能会丢失的东西。我查找了ejabberdctl command "create_room" not known,但那里的解决方案没有成功。有没有特定于 MongooseIM 的东西?
启用的模块:
更新:移至 ejabberd。在 ejabberd 中启用的模块:
xmpp - 微服务网络中的 ejabberd
我愿意在微服务网络中使用 ejabberd / mongooseIm。除了 REST API 网络,XMPP 应该是我们的聊天协议。我想将在下游 xmpp 服务器传入的消息发送到工作服务。有没有人这样做或可以引导我走向正确的方向?
我的第一个想法是使用 RabbitMQ 将新的传入消息发送给工作人员。
ejabberd - MongooseIM/ejabberd:使用 scram 的 http 身份验证
我目前正在使用 MongooseIM 并希望将 HTTP auth 与 scram 一起使用。我正在使用 python passlib 来创建 scram 哈希:
然后我得到这样的结果:
不幸的是,MongooseIM 的 HTTP 身份验证不接受这种格式。我查看了代码并试图找出 scram 散列密码的序列化形式如何:https ://github.com/esl/MongooseIM/blob/master/apps/ejabberd/src/scram.erl
据我所知,我从 passlib 中得到了加盐(散列)密码的加盐、迭代计数和实际摘要(sha-1、sha-256、sha-512),但是 StoredKey 和 ServerKey 呢?二郎代码?host/get_password 返回的正确的序列化 HTTP 正文会是什么样子?
在此先感谢,马格努斯
erlang - Mongoose IM 更改节点名称问题
我正在尝试将 mongooseim 的节点名称更改为我的本地 ip,例如 10.0.0.21。我更改了 MongooseIM/rel/vars.config 中的配置。>
{node_name,"mongooseim@10.0.0.21"}
有什么我需要改变的吗?
更改节点名称时出现以下错误
=INFO REPORT==== 11-Mar-2016::17:11:05 === 无法设置短节点名称!请检查您的配置 escript:异常错误:右侧值不匹配 {error, {{shutdown, {failed_to_start_child,net_kernel, {'EXIT',nodistribution}}}, {child,undefined,net_sup_dynamic, {erl_distribution,start_link, [['mongooseim_maint_6589@10.0.XXX.XXX', shortnames]]}, 永久,1000,supervisor, [erl_distribution]}}}
android - 离线消息未从 xmpp MongooseIM 服务器的 smack api 4.1.6 检索
我正面临使用来自 XMPP Mongoose 服务器的 smack api 在 android 应用程序中检索离线消息的问题。根据代码流尝试在用户登录 xmpp mongoose 服务器时检索离线消息,然后再将可用状态发送到 mongoose 服务器。
尝试了两种不同的方式来检索离线消息仍然无法找到相同的工作解决方案。我尝试过的这两种方法都在下面详细解释。
在我们用于 xmpp 连接和所有其他扩展的 Api 下方:
// Smack(XMPP 客户端库)</p>
编译'org.igniterealtime.smack:smack-android:4.1.6'
编译'org.igniterealtime.smack:smack-tcp:4.1.6'
编译 'org.igniterealtime.smack:smack-im:4.1.6' </p>
编译'org.igniterealtime.smack:smack-android-extensions:4.1.6'
尝试使用 offlineMessageManager 检索离线消息
下面是我在登录后和将可用状态发送到服务器之前尝试检索离线消息的代码
试试 { </p>
Boolean isFelxibleRetrievalSupport = offlineMessageManager.supportsFlexibleRetrieval(); </p>
迭代器 i = (迭代器) offlineMessageManager.getMessages(); </p>
而 (i.hasNext())
{ 消息消息 = i.next(); System.out.println("得到文本 [" + msg.getBody() + "] 从 [" + msg.getFrom() + "]");
} 捕捉(XMPPException e)
{ System.out.println("错误离线消息。"); e.printStackTrace(); }
捕捉(SmackException.NotConnectedException e)
{ System.out.println("错误离线消息。无连接"); e.printStackTrace(); }
捕捉(SmackException.NoResponseException e)
{ System.out.println("错误离线消息。无响应"); e.printStackTrace(); }
问题案例1:
以下是执行上述代码时生成的异常详细信息
在下面的代码行执行时出现异常。
迭代器 i = (迭代器) offlineMessageManager.getMessages(); </p>
以下是上述行执行时生成的异常描述
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: service-unavailable - 取消
问题案例 2:
如果检查是使用来自 xmmp mongoose 服务器的 smack 从 android 代码支持的灵活离线消息,那么我得到了错误值。下面是我用于测试的代码。
Boolean isFelxibleRetrievalSupport = offlineMessageManager.supportsFlexibleRetrieval();
问题案例 3:
当我尝试使用下面的 smack 代码使用下面的方法检索支持的功能时。
ServiceDiscoveryManager 经理 = ServiceDiscoveryManager
.getInstanceFor(连接);
列出 AllFetures = manager.getFeatures();
以下是我检索的功能列表:
http://jabber.org/protocol/bytestreams ,
jabber:iq:privacy, urn:xmpp:ping,
http://jabber.org/protocol/commands ,
jabber:智商:版本,
jabber:智商:最后,
http://jabber.org/protocol/xdata-validate,
http://jabber.org/protocol/xhtml-im ,
电子名片温度,
http://jabber.org/protocol/chatstates ,
瓮:xmpp:收据,瓮:xmpp:时间,
http://jabber.org/protocol/xdata-layout ,
http://jabber.org/protocol/muc ,
http://jabber.org/protocol/disco#items ,
http://jabber.org/protocol/disco#info ,
http://jabber.org/protocol/caps ,
jabber:x:数据
尝试使用来自 XMPP MongooseIM 的包侦听器检索离线消息
下面是我尝试使用来自 smack api 4.1.6 的包侦听器的代码。
private static final StanzaFilter MESSAGE_PACKET_FILTER= new OrFilter(StanzaTypeFilter.MESSAGE);
配置 = XMPPTCPConnectionConfiguration.builder()
// 使用配置的详细信息创建 xmpp 连接的 Connection 对象
连接 = 新 XMPPTCPConnection(配置);
connection.addAsyncStanzaListener(新的 StanzaListener() {
connection.login(用户,密码);
提前致谢,请任何人帮助我为我的关键问题找到最佳工作解决方案。
mongoose-im - 如何将 mysql db 设置为 mongooseim 的默认数据库
我通过仅创建数据库(如 mongoosedb)来提供 mysql 数据库名称并相应地更改 ejabberd.cfg 文件。重新启动 mongooseim 后,我仍然没有在数据库中获取用户条目。所以我需要做些什么来将mysql配置为默认数据库。
有我的 ejabberd conf 文件:
有我的数据库:
erlang - 在 mongooseim 中使用 REST api 或 xml rpc 创建用户帐户,就像在 ejabberd 中一样
我正在尝试使用休息界面在 mongooseim 服务器中创建用户帐户。我不确定这里描述的这个休息接口https://mongooseim.readthedocs.io/en/latest/developers-guide/REST-interface-to-metrics/
我可以使用 XML RPC 在 ejabberd 中创建帐户并做很多事情。
有没有办法在 mongooseim 服务器中做到这一点?
mongoose-im - mod_shared_roster_ldap 配置不起作用。如何让它发挥作用?
我正在与 Mongooseim 一起设置 OpenLDAP。我对ldap没有详细的了解。我能够使用 LDAP 设置身份验证,但无法设置mod_shared_roster_ldap
. 我想要彼此名册中的所有用户。
我的示例配置是这样的:
mysql - MongooseIM 连接到 MySQLDB 未在 DB 中存储任何内容
我已经连接到 SQL 数据库作为 MongooseIM 站点中给出的 SQL 数据库链接而不是 mnesia 的指示。我已经在ejabberd.cfg文件中进行了更改,但我仍然没有在我的数据库中看到任何值。
但是>mongooseimctl registered_users localhost 命令给了我用户列表。如何在 SQL 中查看它们以及它们实际存储在哪里。
asp.net - 如何使用 .Net 服务在 MongooseIM 服务器上注册用户
我正在尝试实现将保存用户配置文件和其他活动的.Net Web 机制。
成功后,用户将能够聊天,因此必须在 MongooseIM 服务器下注册并创建 JID。
这必须由 Asp .Net 服务器来为用户生成 JID 并执行类似于$sudo bin/mongooseimctl register username hostname password.
如果用户调用 Remove 帐户并且 Asp .Net 将与 MIM 对话以执行$sudo bin/mongooseimctl unregister username hostname
命令,则将执行类似的活动。
我们有什么方法可以通过以下方式实现这一目标。
1) 我们尝试了 Curl 命令,但它在 PHP 中,但需要更多指导如何执行此操作。2) MongooseIM 是否有任何设施可以在任何 Web 服务之外公开以执行 mongooseimctl 命令。
感谢提供的任何潜在客户。