问题标签 [ejabberd-module]

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

xmpp - 收件人在 Ejabberd 中突然断开连接时消息丢失

由于某些网络问题,收件人突然从 INTERNET 断开连接时消息丢失。在这种情况下,我想停止消息丢失。

示例:用户 A 和 B 在线并正在聊天。A向B发送消息。然后突然用户B失去了INTERNET连接,同时用户A仍在向B发送消息。服务器假设B仍然在线,因为不知道B有网络问题。

我正在使用 Ejabberd 16.08 。请提出如何解决此问题的方法。

0 投票
1 回答
332 浏览

cassandra - 在 Ejabberd 16.09 中使用 Cassandra 进行消息存档管理 (mod_mam) 数据库

我正在尝试在 Ejabberd 16.09 中将 Cassandra 用于 mod_mam。该版本的 Ejabberd 是否支持 Cassandra?如果是,如何配置 Ejabberd 以使用 Cassandra?
此外,我还找到了一些 Erlang-Cassandra 驱动程序,例如 Cqerl、Erlcass 和 Erlang-cassandra-cql。我可以使用它们连接 Ejabberd 和 Cassandra 吗?

0 投票
2 回答
255 浏览

xmpp - ejabberd 文件传输失败

请帮助我解决这个错误,我正在使用 Windows 系统

@ejabberd_pkix:handle_call:175 找不到与“esat.ae”匹配的证书:严格配置的客户端或服务器将拒绝与该主机的连接

0 投票
1 回答
490 浏览

mysql - mysql 数据库中的哪个表用于在 ejabberd 17.07 中存储聊天对话?

我已经通过源配置了 ejabberd 17.07 并启用了 mysql。我在 yml 文件中进行了更改以使用 mysql 作为其数据库。现在我想知道 mysql 数据库中的哪个表用于在 ejabberd 中存储聊天对话?我需要为此添加任何模块或任何表格吗?如果是,那么我该如何实现呢?有一个文件'ejabberd.yml'。我可以在管理面板上看到一些模块,并且我还为导入一些表的 ejabberd 配置了 mysql 模式。但是我无法获取存储所有聊天对话的表?我可以看到一个名为offline_messages 的表。有一个名为“用户”的表,我可以在其中获取所有注册用户。所以我认为 mysql 设置正确完成。谢谢

0 投票
2 回答
251 浏览

erlang - 如何解决函数调用之间的竞争条件

我已经使用 erlang 的消息传递构造构建了一个多人游戏(准确地说是 4 个玩家)。我以以下链接上的 tictactoe 游戏为例,但真正相似的是游戏中显示的消息传递构造:link

然后我选择在 ejabberd Multi user Chatroom 上运行这个游戏,我确实为此编写了一个 ejabberd 钩子。但是,如果您查看上述链接中文件 tictactoe.erl 中的 NewGameState,您会发现无法在变量中检索它。

所以我使用了 mnesia 并将每个生成的新游戏状态写入这个 mnesia 表。现在在我的 ejabberd 钩子中,我调用我的游戏函数(即在每次调用时执行一系列模块->“gen_server,game_modules,mnesia_modules”)并在游戏函数调用下方的钩子中,我正在从 mnesia 表中读取游戏状态如下(这里的函数myMessage是ejabberd钩子里面的函数):

现在我的问题是,当执行顺序为时,读取操作给了我一个空表

当我在这两行之间插入延迟时,timer:sleep/1如下所示(经过一些不同值的试验后随机选择值 200):

我得到了正确的 GameState 值,因此建议我进行读取操作

在行some_other_module:game_func(Args)(这是一系列模块->“gen_server,game_modules,mnesia_modules”)能够执行 mnesia 模块并将 GameState 写入 mnesia 表之前执行/执行。

如何解决此问题,因为我不想使用timer:sleep/1它,因为它不是可靠的解决方案。

谁能建议我在这里解决一下。我的意思是,任何人都可以建议我一种方法来通过除 mnesia 以外的任何其他方式来检索钩子内的 GameState,所以我根本没有竞争条件。

或者,ejabberd 是否以某种方式提供了一些我可以在这里使用的功能?

提前致谢。

0 投票
1 回答
141 浏览

ejabberd - When does the user_receive_packet hook gets started/triggered

I am using hooks in ejabberd to create a custom module and have used user_send_packet hook till now.I wanted to implement a custom functionality on ejabberd server as soon as (and after) the packet is sent to the client from the server. I am thinking about using user_receive_packet hook but I am a bit confused regarding the time when it gets triggered or started.

Does it start or gets triggered just before the packet is sent to client or does it starts after the packet is sent to the client.

And in case if it starts or gets triggered before the the packet is sent, then in that case what happens to the packet being sent to the client, I mean does the packet wait for the module implementing user_receive_packet to finish and then goes to the client or it simple is not affected?

Can anyone help me out here?

0 投票
1 回答
233 浏览

xmpp - 功能未实现响应是什么意思

我正在尝试从 android 应用程序向 ejabberd 服务器发送自定义 IQ,并且我有以下课程

这些是我得到的 IQ 日志:

我理解我得到的第一次收到 iq 的原因,但我不明白 iq 的原因:

编辑

这是我发送上述查询时应该执行的模块:

在 gen_iq_handler() 内部,我看到处理程序已经注册,所以我现在很困惑,实现该功能意味着什么。

我只想将响应 iq 中的 Sum 值发送给客户端,为此我应该如何准确注册此功能以及如何从该模块向客户端/用户发送 iq 响应而不会出现任何错误 iq?

0 投票
1 回答
53 浏览

erlang - 从 http 服务器查询 ejabberd

  • 我有一个失忆症数据库
  • 数据库有一个包含大量记录的表。

  • 我想通过(http请求)从node.js服务器获取该表中的所有记录rest api

例如。

  • Node.js 服务器向 ejabberd 服务器发送一个 http 请求以查询该表
  • Ejabberd 服务器将所有记录返回给 node.js 服务器。

我怎么能这样?

0 投票
1 回答
53 浏览

xmpp - 我不能发送通知 whit strophe.js,什么是必要的模块?

我不能从 ejabberd sever 18.03 发送公告。有可能,怎么做?我不能使用这个代码? https://github.com/bbc/Strophejs-PubSub-Demo/blob/master/js/publisher.js

0 投票
1 回答
69 浏览

xmpp - ejabberd: mom_mam 抛出错误

我刚刚从支持 MySQL 的源代码(18.04)安装了 ejabberd,并分别更改了配置文件。基本上一切正常:ejabberd 启动,我可以注册用户,用户可以连接和发送消息。我还看到数据库中的所有用户,所以我认为设置到目前为止是正确的。

现在我想使用 modmod_mam来存档所有消息。为此,我在ejabberd.yaml文件中添加了以下几行:

但是,当我发送脱机消息时,我收到以下错误 - 实际上,两个函数同时使用脱机消息挂钩的两个类似错误:

使用较旧的安装(17.01)一切正常。但我不知道是否需要额外的 MySQL 表。当我查看当前数据库时,实际上所有消息(包括离线消息)都存储在 table 中archive