问题标签 [ejabberd-api]

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

ejabberd - ejabberd set_preference rest api 抛出错误

任何人都可以请帮助 ejabberd 设置偏好的 rest api

以下是请求正文

当我试图点击 api 时,我得到的响应是“internal_error”。

在日志中,我可以看到以下语句

REST API 错误:set_presence([{<<"user">>,<<"venkat">>}, {<<"host">>,<<"localhost">>}, {<<"resource"> >,<<"tka1">>}, {<<"type">>,<<"available">>}, {<<"show">>,<<"away">>}, {<< "状态">>,<<>>},{<<"优先级">>,<<"0">>}])

-> 退出:{noproc,{p1_server,call,[none, {set_presence,{presence,<<>>,available,<<>>, {jid,<<"venkat">>,<<"localhost"> >,<<"tka1">>,<<"venkat">>,<<"localhost">>,<<"tka1">>}, {jid,<<"venkat">>,<<"localhost ">>,<<>>,<<"venkat">>,<<"localhost">>,<<>>},away,[],0,[],#{}}},1000]} }

[{p1_server,call,3,[{file,"src/p1_server.erl"},{line,210}]},{mod_http_api,handle2,4,[{file,"src/mod_http_api.erl"},{ line,268}]},{mod_http_api,handle,4,[{file,"src/mod_http_api.erl"},{line,229}]},{mod_http_api,perform_call,4,[{file,"src/mod_http_api .erl"},{line,189}]},{mod_http_api,process,2,[{file,"src/mod_http_api.erl"},{line,142}]},{ejabberd_http,process,2,[{文件,"src/ejabberd_http.erl"},{line,373}]},{ejabberd_http,process_request,1,[{file,"src/ejabberd_http.erl"},{line,496}]},{ejabberd_http, process_header,2,[{file,"src/ejabberd_http.erl"},{line,293}]}]

使用 ejabberd 20.07 版本

0 投票
1 回答
113 浏览

xmpp - ejabberd xmpp 为离线用户设置状态

对于状态应用程序,我们使用 ejabberd xmpp 服务器。

有时,必须从 Web 服务器为用户设置状态。可能是用户没有活动的 xmpp 会话。

我尝试使用https://docs.ejabberd.im/developer/ejabberd-api/admin-api/#set-presence,但这仅适用于活动会话和有效资源。

我们如何“覆盖”指定用户的存在?

0 投票
1 回答
63 浏览

java - 如果接收者用户离线,则通过 Ejabberd Api 的 send_message 端点发送时未收到消息

我正在实现聊天应用程序,但我不明白为什么当我使用ejabberd 的模块Send_message时,接收者看不到消息。

我是说 :

  • 用户 B 离线,用户 A 通过 https 使用 ejabberd api 发送消息。**

  • 当用户 B 上线时,他什么也看不到 ***

我在客户端使用 smack 并实现了传入消息的侦听器。但我没有看到带有消息扩展名的传入数据包

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

ejabberd - 使用特定信息识别用户

如何在 ejabberd API 中使用特定信息(如唯一 ID 或参考号)来识别用户以进行聊天?

我想与某人聊天,然后用户有一些信息,除了该特定用户的唯一名称。所以我们可以根据它来识别聊天中的用户吗?

在调用 /api/register API 时注册用户时,没有任何唯一的响应可用于与其他用户聊天

甚至,/api/registered_users 仅给出所有注册用户的名称,而不是任何唯一信息

那么,解决方案是什么?是否有任何其他 API 用于相同或什么?

0 投票
1 回答
35 浏览

xmpp - eJabberd 管理面板不显示用户

在 eJabberd API 中,为什么 eJabberd 管理面板没有显示主机、注册用户和在线用户?

有人有同样的想法吗?

因为在 Postman 中,所有这些类型的 API 都可以正常工作,例如 connected_users_vhost、connected_users 和 registered_users

请参考所有截图 ejabberd_admin_panel

ejabberd_postman_connected_users

ejabberd_postman_connected_users_vhost

ejabberd_postman_registered_users

如果有人知道同样的情况,请告诉我

0 投票
1 回答
36 浏览

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

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

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

我的python脚本代码:

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

0 投票
1 回答
41 浏览

xmpp - 如何使用 POSTMAN 在 ejabberd 的 REST api 中生成不记名令牌

大家好,我正在使用 ejabberd,我想生成一个不记名令牌来访问所有方法并使用 ejabberd 的 REST 获取数据。当我尝试生成标头中没有身份验证的承载令牌时,它显示一个错误,即在此处输入图像描述

我正在为ejabberd_http模块使用端口 5180 我的配置是

api权限的配置是

我想使用其余部分将消息发送给用户,但为此我需要不记名令牌,当我尝试生成不记名令牌时显示错误请建议我一些方法来解决此问题并生成不记名令牌

谢谢

0 投票
2 回答
25 浏览

ejabberd - 为 eJabberd 使用自定义用户表

更新的答案

所以我有一个可以注册和登录的移动应用程序(当然还有其他功能,但在这种情况下它们并不重要)。现在我想向这个应用程序添加聊天功能。我安装了 eJabberd,导入了 SQL 脚本并启用了 SQL。这里的结果是两个用户表,一个应用程序用于注册和登录,另一个是通过导入 ejabberd 脚本创建的,ejabberdctrl 默认注册其用户。

然后我设置了外部身份验证,它使用应用程序用户表(不是由 ejabberd 创建的)。

现在我的问题是,通过这种绕过 ejabberd 用户表的设置,ejabberd 服务器还能工作吗?例如,我试图思考当 ejabberd 不了解应用程序用户表并且其表为空时,它将如何组织帐户名册?

换句话说,我如何告诉 ejabberd 将我的自定义应用程序表用于所有用户操作而不是其默认表?我想避免在两个表中插入数据。

旧问题(保留答案上下文)

我有一个有效的 ejabberd 安装,使用自定义脚本验证登录。它工作正常。但是现在我面临一个问题,这更多的是预见到的问题而不是实际遇到的问题。

到目前为止,我已经在 ejabberd 用户表和自定义用户表中复制了用户。这意味着我需要将数据发布到我的注册 API 以及 ss ejabberd API。有没有办法告诉 ejabberd 在配置中使用某些表作为用户表?或者如果我只是忽略用户表而不完全注册和使用 ejabberd 会安全吗?ejabberd 的其余部分会起作用吗?