问题标签 [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 投票
2 回答
788 浏览

xmpp - 应用程序终止时的 Ejabberd 消息传递

我正在为 IOS 和 Android 使用 ejabberd 服务器开发一个聊天应用程序。我还为 ejabberd 编写了一个模块来获取发送到我自己的服务器 api 的离线消息。

我自己的服务器 api 将使用 FCM 向 IOS/Android 平台发送通知。

在客户端,如果应用程序在前台或后台,它将保持与 ejabberd 的连接,如果客户端收到消息,则 ejabberd 将发送消息传递状态。

我在应用程序终止(服务未运行)时遇到问题,这意味着它没有连接到 ejabberd(离线)。如果我在此应用程序未终止的情况下向它发送消息,它将收到通知,但消息仍未送达。在应用程序终止时收到通知时如何将消息标记为已送达。

为了进一步解释,whatsapp 可以正常使用相同的功能:

  • 设备 A 已安装 whatsapp 并且 whatsapp 已关闭(终止)
  • 设备 B 正在运行 whatsapp
  • 设备 B 向设备 A 发送消息
  • 设备 A 收到 whatsapp 通知
  • 在设备 A 上不做任何事情,设备 B 上的消息状态被标记为已传递。

如何使用 ejabberd 实现此场景?

0 投票
1 回答
64 浏览

ejabberd - 在 ejabberd 的 vcard 中添加字段时无法理解崩溃

我正在尝试在 vcard 中添加一个新字段作为“Abc”。为此,我在 xmpp_codec.spec 文件中为这个“Abc”字段添加了一个 xml。并在#vcard_temp 中引用了它。我将在“make spec”之后生成的xmpp_codec.erl、xmpp_codec.hrl、xep0054.erl文件放在它们各自的目录中。

但是当我尝试通过发送这个 iq 来添加这个字段的值时

我收到这个错误

在 mod_avtar.erl 中的第 320 行是这个函数

并且第 320 行在case VCard#vcard_temp.photo of这个函数里面。

而且我无法理解这个错误,因为我没有更改#vcard_photo记录,为什么它说这vcard_temp是一个坏记录?

编辑

这是添加xml并制定规范后生成的#vcard_temp记录

0 投票
1 回答
36 浏览

hbase - 使用 Ejabberd 配置 HBase

我打算将 HBase 用于我的 Ejabberd 服务器。我试图获取一些关于如何配置它的文档,但我不能,所以请任何人都可以通过提供一些文档链接来帮助我。

谢谢, 湿婆普拉萨德 G

0 投票
2 回答
87 浏览

ejabberd - 在 muc_filter_message 挂钩中检索时间戳值

是否可以在muc_filter_message 钩子中获取消息的时间戳?我需要通知 muc 消息,通知负载必须包含消息的时间戳。

我可以从中提取Pkt一个指示时间戳的字段吗?

在客户端,我得到了这个框架,其中 archived -> id 与存储在 ejabberd 数据库的归档表中的时间戳匹配

在此处输入图像描述

0 投票
1 回答
40 浏览

ejabberd - ejabberd-18.12 中钩子 user_receive_packet 的正确语法?

当前代码:

调用钩子时出现错误:

我猜函数参数是错误的。正确的语法应该是什么?我正在使用 ejabberd-18.12

0 投票
1 回答
69 浏览

ejabberd - ejabberd-18.12:在钩子中解析数据包

挂钩代码:

输出:

我想读取stanza_id下面列出的字段值和时间戳mam_archived

解析任何字段的语法是什么?

0 投票
2 回答
47 浏览

xmpp - 如何通知收件人有人在 ejabberd 上阻止了他们?

我们正在使用最新的 ejabberd 构建一个聊天应用程序,并且有一个用户 A 阻止用户 B 的用例。要求是隐藏最后一次看到或用户的存在。如果 A 阻止 B 那么很容易向用户 A 隐藏这些信息,但是如何通知用户 B 用户 A 已经阻止了他们?什么是告诉用户 B 有人在对话中实时阻止他们的最佳方法,就像现在的 whatsapp 一样。

0 投票
1 回答
24 浏览

ejabberd - 在 ejabberd-18.09 中使用 jid:make/2 时出现问题

我正在使用 ejabberd-18.09。我有这个代码

在哪里

但是RoomJid = jid:make(Roomname, HostName),即使 mod_muc:create_room/5 成功运行并且我可以看到房间创建正常,这条线也会导致 RoomJid 出现“错误”。

我很难理解它。

有谁可以帮我离开这里吗?

0 投票
1 回答
495 浏览

erlang - 未调用 Ejabberd 中的自定义模块

原来的

几天来,我一直在尝试将适用于以前版本的开源 Ejabberd 模块 (mod_offline_http_post) 适应当前版本 (20.04)。例如,某些部分现在对于导出很重要,例如 mod_options 和 mod_depends。它们不是模块源代码的一部分。我添加了它们。我仍然有一个错误。

.ejabberd-modules/sources/mod_offline_http_post/src/mod_offline_http_post.erl

.ejabberd-modules/sources/mod_offline_http_post/conf/mod_offline_http_post.yml

如果需要,我可以提供更多详细信息。

在此先感谢您的帮助。

编辑 1

现在看来它正在工作......当向离线用户发送消息并且现在可以识别选项时,会有一个日志。一旦没有更多问题,我将发布我为使其工作所做的工作,作为答案。这,对于其他人。

剩下的问题是我怀疑该模块是否被调用。我谈到的日志不是来自模块,而可能来自 Ejabberd 路由器。我谈论它是因为过去没有这样的事情。那么,有一些积极的事情正在发生。为了使事情更加确定,当我卸载模块时它显示“Bad module”。

这是新的erl代码:

编辑 2

这是一个非常有前途的案例。该模块被调用。只是它崩溃了,这是另一个非常有趣的案例。这是错误日志:

0 投票
1 回答
449 浏览

python - discord.py 覆盖 create_text_channel 权限

我想添加公会。(用户 ID)并有权读取消息 true,如果您知道如何执行此操作,请提供帮助我需要它来使用用户 ID 添加特定用户