问题标签 [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.
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 版本
xmpp - ejabberd xmpp 为离线用户设置状态
对于状态应用程序,我们使用 ejabberd xmpp 服务器。
有时,必须从 Web 服务器为用户设置状态。可能是用户没有活动的 xmpp 会话。
我尝试使用https://docs.ejabberd.im/developer/ejabberd-api/admin-api/#set-presence,但这仅适用于活动会话和有效资源。
我们如何“覆盖”指定用户的存在?
java - 如果接收者用户离线,则通过 Ejabberd Api 的 send_message 端点发送时未收到消息
我正在实现聊天应用程序,但我不明白为什么当我使用ejabberd 的模块Send_message时,接收者看不到消息。
我是说 :
用户 B 离线,用户 A 通过 https 使用 ejabberd api 发送消息。**
当用户 B 上线时,他什么也看不到 ***
我在客户端使用 smack 并实现了传入消息的侦听器。但我没有看到带有消息扩展名的传入数据包
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 之类的端口。如果有任何配置可以解决这个问题,请告诉。
ejabberd - 如何在 ejabberd 中将大量用户添加到 muc 房间?
我们需要在 ejabberd 服务器的单个 muc 房间中添加 10 万用户。我们正在使用subscribe_room api来一一添加用户。在将用户添加到 muc 房间时,ejabberd 消耗的内存正在增加。在某些时候,Ejabberd 服务器消耗了 11GB 的内存。由于内存消耗不断增加,Ejabberd 服务器进程被内核杀死。我们使用的是 ejabberd-21.01 版本。
- 我们需要更改任何配置还是缺少任何东西?
- 有没有办法在对 ejabberd 的单个 api 调用中将多个用户添加到 muc 房间?
ejabberd - 使用特定信息识别用户
如何在 ejabberd API 中使用特定信息(如唯一 ID 或参考号)来识别用户以进行聊天?
我想与某人聊天,然后用户有一些信息,除了该特定用户的唯一名称。所以我们可以根据它来识别聊天中的用户吗?
在调用 /api/register API 时注册用户时,没有任何唯一的响应可用于与其他用户聊天
甚至,/api/registered_users 仅给出所有注册用户的名称,而不是任何唯一信息
那么,解决方案是什么?是否有任何其他 API 用于相同或什么?
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
如果有人知道同样的情况,请告诉我
python - 实现 pyejabberd 消息系统时的配置相关问题
我正在我的 python 应用程序中实现一个消息系统,为了实现这一点,我正在使用 ejabberd 的客户端库,它是 pyejabberd。我已经检查了这个的官方文档来配置 ejabberd.yml 文件,但得到了一些错误。这是 BadStatusLine("") 错误。IDK 为什么这会获取我的 ejabberd.yml 文件的内容/配置是-
我在这里犯了一些错误还是我的配置错误?你能给我一些解决这个问题的方法吗?
我的python脚本代码:
当我调用该方法client.echo
时,它会遇到异常并引发错误。
ejabberd - 为 eJabberd 使用自定义用户表
更新的答案
所以我有一个可以注册和登录的移动应用程序(当然还有其他功能,但在这种情况下它们并不重要)。现在我想向这个应用程序添加聊天功能。我安装了 eJabberd,导入了 SQL 脚本并启用了 SQL。这里的结果是两个用户表,一个应用程序用于注册和登录,另一个是通过导入 ejabberd 脚本创建的,ejabberdctrl 默认注册其用户。
然后我设置了外部身份验证,它使用应用程序用户表(不是由 ejabberd 创建的)。
现在我的问题是,通过这种绕过 ejabberd 用户表的设置,ejabberd 服务器还能工作吗?例如,我试图思考当 ejabberd 不了解应用程序用户表并且其表为空时,它将如何组织帐户名册?
换句话说,我如何告诉 ejabberd 将我的自定义应用程序表用于所有用户操作而不是其默认表?我想避免在两个表中插入数据。
旧问题(保留答案上下文)
我有一个有效的 ejabberd 安装,使用自定义脚本验证登录。它工作正常。但是现在我面临一个问题,这更多的是预见到的问题而不是实际遇到的问题。
到目前为止,我已经在 ejabberd 用户表和自定义用户表中复制了用户。这意味着我需要将数据发布到我的注册 API 以及 ss ejabberd API。有没有办法告诉 ejabberd 在配置中使用某些表作为用户表?或者如果我只是忽略用户表而不完全注册和使用 ejabberd 会安全吗?ejabberd 的其余部分会起作用吗?