问题标签 [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 回答
141 浏览

dns - 带有自定义域的 Ejabberd 配置

注意:我是新手。

我打算在 Android 平台上构建聊天应用程序,该应用程序将有自己的后端和消息传递架构。

该系统甚至在端口 443 https 上有一个 REST API,现在问题是我想在另一个端口上配置 ejabberd。

使用我的 ISP IP 地址,一切都按预期工作。

https://ip:2053/admin - 有效 https://example.com:2053/admin - 有效

在 ejabberd.yml 中,我设置了 let's encrypt 的证书 - 这四个文件,并且还复制了 server.pem 中这 4 个文件的内容

当我直接通过 ip 地址与 pidgin(xmpp 客户端)连接时

在我的 ip 上注册为主机的两个用户可以无缝发送消息,包括图像和视频。而且我得到一个提示,安装的证书不包含我简单接受并跳过的 IP 地址。

user1@ipaddress 端口 2083

但是,当我对 example.com 做同样的事情并且用户在 example.com 上注册它时,它根本行不通。

user1@example.com 端口 2083

注意:两台主机都注册了 user1 用户。

请告诉我我做错了什么:(

眼镜

域:example.com Cloudflare:true

此外,我正在将 cloudflare 用于 ssl 等,它不允许我在互联网上阅读的 5222 或 5820 之类的端口。如果有任何配置可以解决这个问题,请告诉。

0 投票
1 回答
35 浏览

ejabberd - 哪个钩子可以限制用户每天可以发送的消息数量?

我们希望在具有相当独特和业务规则的 Web 应用程序的上下文中使用 ejabberd,因此我们需要让每条聊天消息(不是协议消息,而是用户发送给另一个人的消息)首先通过我们的 Web 应用程序,然后让 Web 应用程序代表用户将消息传递给 ejabberd(如果我们的业务规则允许发送消息)。

Web 应用程序也是提供联系人列表的应用程序(如果我对 ejabberd 的理解正确,称为名册)。我们需要成为并且仍然是唯一的事实来源,以简化维护。

对我们来说,ejabberd 的附加价值是向客户提供近乎实时的聊天消息,并启用诸如存在指示器等很酷的东西。Web 客户端将通过 websocket 保持与 ejabberd 的直接连接,但就聊天消息而言,此连接必须是只读的,而就存在消息而言,该连接必须是读写的。

音频和视频通话的情况类似。虽然这次每次看到的呼叫将直接由 ejabberd 管理,以利用内置的 STURN、TURN 等......并且不需要通过我们的 Web 应用程序,我们有自定义业务逻辑来管理谁能够呼叫谁,什么时候,多久等等......(换句话说,我们有自定义业务逻辑来授权或不授权调用,我们希望将所有业务逻辑集中在 Web 应用程序中)。

我的问题是,为了实现我们所追求的目标,我们需要研究什么合适的钩子?我在文档中花了一个小时左右,但我找不到我所追求的,所以希望有人能给我指点。在理想情况下,我们希望从我们的 Web 应用程序中公开 API 端点,以便 ejabberd 钩子可以命中。然而,第一个问题是:ejabberd 提供了哪些相关的钩子,这些钩子记录在哪里?

任何帮助将不胜感激,谢谢!

0 投票
1 回答
82 浏览

ejabberd - 如何在 ejabberd 中将大量用户添加到 muc 房间?

我们需要在 ejabberd 服务器的单个 muc 房间中添加 10 万用户。我们正在使用subscribe_room api来一一添加用户。在将用户添加到 muc 房间时,ejabberd 消耗的内存正在增加。在某些时候,Ejabberd 服务器消耗了 11GB 的内存。由于内存消耗不断增加,Ejabberd 服务器进程被内核杀死。我们使用的是 ejabberd-21.01 版本。

  1. 我们需要更改任何配置还是缺少任何东西?
  2. 有没有办法在对 ejabberd 的单个 api 调用中将多个用户添加到 muc 房间?
0 投票
1 回答
36 浏览

python - 实现 pyejabberd 消息系统时的配置相关问题

我正在我的 python 应用程序中实现一个消息系统,为了实现这一点,我正在使用 ejabberd 的客户端库,它是 pyejabberd。我已经检查了这个的官方文档来配置 ejabberd.yml 文件,但得到了一些错误。这是 BadStatusLine("") 错误。IDK 为什么这会获取我的 ejabberd.yml 文件的内容/配置是-

我在这里犯了一些错误还是我的配置错误?你能给我一些解决这个问题的方法吗?

我的python脚本代码:

当我调用该方法client.echo时,它会遇到异常并引发错误。

0 投票
0 回答
34 浏览

xmpp - 如何在 ejabberd 服务器的 xmpp 协议中回调?

我需要从 ejabberd 服务器中的 xmpp 协议回调以下内容

  1. 当用户离线/在线时
  2. 当互联网连接丢失时
  3. 消息何时送达

如何从技术上获取上述内容的回调?或者需要为此做任何配置?

我正在使用 jitsi 作为 ejabberd 服务器的客户端

谁能帮助我,如何实现?

第二件事是

用户离线时也应发送消息

但是,只有在用户失去互联网连接时才应该发送消息

如何实现以上两点?

目前,当用户离线和用户互联网连接丢失时,消息不会传递