问题标签 [ejabberd-hooks]

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 投票
0 回答
52 浏览

ejabberd-hooks - 查找 run 钩子和 run_fold 钩子

文档https://docs.ejabberd.im/developer/hooks/说有两种类型的钩子run_hook(未使用其返回类型)和run_fold(其返回类型用于未来的钩子)钩子。

作为 run_fold 钩子的示例,显示了filter_packet。列出了很多其他的钩子,但是如何找到哪个钩子是run_hookrun_fold钩子?

0 投票
0 回答
85 浏览

erlang - 为什么 ejabberd 在关闭 c2s 进程之前停止模块?

我在 ejabberd 的 gen_mod 行为之后添加了一些模块来实现我的私有服务,并在这些模块中添加了一些钩子。这在大多数情况下都很好用。

但是当我调用 ejabberdctl stop 时,ejabberd 执行以下代码,我发现 gen_mod:stop_modules()之前已经完成broadcast_c2s_shutdown(),ejabberd_c2s 中的一些钩子,例如“未设置存在钩子”,由于我的模块已关闭,无法执行。

我想知道为什么ejabberd会在关闭c2s进程之前停止模块,或者这个设计的目的是什么?

0 投票
1 回答
180 浏览

xmpp - 什么时候在 ejabberd 中创建会话?身份验证如何工作?

我试图了解 ejabberd 的数据流,直到现在都很难。

首先,这些是我正在开发的模块:ejabberd_c2s、ejabberd_auth、ejabberd_sm、ejabberd_sm_mnesia。

我知道 ejabberd_c2s 是一个 gen_fsm ,它是任何想要与任何其他客户端交谈的客户端的入口点。

数据流:当客户端连接到 ejabberd_c2s 时,它会发送一些数据,但不知道具体是什么,但沿着 {JID} 行。但无法弄清楚 ejabberd_c2s 如何进行身份验证?它实际上在哪里调用身份验证模块,如果身份验证成功,谁为该用户创建会话?是 ejabberd_c2s 还是 ejabberd_auth ?

我知道 ejabberd_sm[_mnesia] 是实际上将为任何人创建会话的 api 调用。

非常感谢对代码/示例的引用。!

这整件事究竟是如何运作的?

非常感谢!

0 投票
1 回答
233 浏览

ejabberd - 如何在 ejabberd 上对名册获取调用进行分页

我在 ejabberd 上运行我的聊天服务,但是在 4 到 5 个月没有停机之后,我遇到了一个用例,即为花名册列表太大的用户获取花名册需要花费大量时间。在很多地方都提到 ejabberd 上不存在分页功能,但是我们有什么办法可以优化它吗?

0 投票
0 回答
107 浏览

ios - 如何在 Ejabberd 中管理 iPhone 推送通知的有效负载内容

我使用 Ejabberd 16.03 在 iPhone 中创建了一个聊天应用程序。如果最终用户移动应用程序未在前台/后台运行,则每次通过 Ejabberd 通过推送通知接收到消息时都会发送警报。在此通知的有效负载中,我得到了用户的 JID。

现在,我想在此有效负载中再添加一个字段,例如Profile_Name。但我不知道以下几点:
1)哪个模块用于发送推送通知?
2) Ejabberd 如何发送这些推送通知?
3) Ejabberd 从哪里获取设备令牌和证书文件 (.pem)?
4) 如何配置通知的有效负载?

我做了一些研发,但没有什么特别的。我发现了很多推送通知的模块,但我认为没有必要添加这些模块。因为我很好地收到了推送通知。我只想自定义这些通知的有效负载。
请告诉我我该怎么做。

0 投票
0 回答
347 浏览

xmpp - 在 IQ xmpp 节的结果中获取用户属性

我正在使用 OpenFire create-user RestAPI 调用创建 XMPP 用户。我正在为用户设置一些属性,如PayLoad 示例 2中所示。

创建用户后,我将他们添加到彼此的名册中。因此,每个用户在他/她的联系人列表(名册)中都有其他用户

现在,在客户端(我使用 smack 库),当我检索任何用户的名册时,我希望属性连同用户的 jabber id 等一起返回。但我没有看到属性 xml 标记。

我不想创建 vCard(因为我听说很难使用 OpenFire 设置 LDAP 等)只是为了为用户实现这种轻量级元数据设置。

任何想法,如果我想要做的甚至是可行的。是否应该在IQ 结果节中传输属性以响应IQ GET 节

感谢您的关注并提前感谢。

PS: 如果 vCard 是我实现我想要的唯一方法,那么请让我知道如何进行设置。任何指针都受到高度赞赏。

0 投票
0 回答
328 浏览

erlang - Ejabberd 在模块内获取房间在线居住者

我目前正在尝试在 muc_filter_message 挂钩内的自定义 Ejabberd 模块中获取房间的居住者,但所有获取房间状态的尝试都超时。

错误:

进口+钩子功能(削减)

房间占用者检索代码:

get_room_occupants 代码是直接从 mod_muc_admin 中提取的,它可以正常工作(但我找不到直接使用该模块中的函数的方法)。现在已经坚持了一段时间,所以任何想法都会受到赞赏。

0 投票
2 回答
372 浏览

push-notification - Ejabberd 离线和不可用的区别

我们正在使用 ejabberd-16.08 实现聊天基础架构,我们决定在接收者用户离线时使用 mod_interact( https://github.com/adamvduke/mod_interact ) 向我们的网络服务器发送请求(这样我们就可以发送它们推送通知)

但是,当我将 mod_interact 与 ejaberd 集成并向我名册中的一位离线朋友发送消息时,我看到 mod_interact 发送的是 mod_unavailable 消息而不是 mod_offline 消息。(我希望 mod_interact 发送 mod_offline 消息,因为只有 mod_offline 具有发送推送通知的正确信息)

所以我想知道beeing online和beeing不可用有什么区别,我们该如何设置。

PS:我试图发送消息的用户(这似乎不可用)与服务器断开连接(没有特别将他/她的存在设置为不可用)

谢谢

0 投票
0 回答
121 浏览

xmpp - 通信时出现 Ejabberd 错误等待功能请求错误

当 XMPP 主客户端应用程序尝试向驱动程序应用程序发送请求时出现此错误

0 投票
2 回答
598 浏览

ejabberd - 如何使用 Ejabberd mod_mam(消息存档管理,XEP-0313)在存档表中保存额外字段?

我正在使用 Ejabberd 服务器进行聊天应用程序。它可以将消息保存在 arhieve 表中,但我想在发送消息时在表中保存其他字段。此字段将是每条消息。