ejabberd muc_sub 从 ejabberd 服务器中为用户订阅房间
ejabberd muc_sub subscribing a user to a room from within the ejabberd server
如果我的措辞有点不妥,请多多包涵。
我基本上想做的是编写一个脚本,该脚本 运行s 在 ejabberd 服务 运行 正在运行的服务器上。
这个脚本应该创建一个聊天室并自动订阅用户。
我知道这可以通过 REST API 但我不想通过来自外部但来自同一物理服务器内部的连接来触发它。
或者 goto 方法会是 运行 通过本地主机调用 API 吗?
更新:
正如所怀疑的那样,我可以简单地通过本地主机调用 REST API。但我还是卡住了。这可能是我的配置或调用中的一些错字,所以我将在这里分享我的尝试:
您好,感谢您的回复。我自己走到这一步,但没有得到预期的结果。
所以我在我的 yml 文件中配置了必要的部分,如下所示:
listen:
-
port: 5285
module: ejabberd_http
request_handlers:
"/rest": mod_rest
并将本地主机添加到主机。
然后我尝试访问这样的 REST 函数:
curl -X POST -i -H "Content-type: application/json" http://localhost:5285/rest/create_room -d
'
{
"name":"testroom",
"service":"mychatservice.host.com",
"host":"host.com"
}
'
我得到了这样的回复:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 21
Try POSTing a stanza.
我认为 200 代码意味着我做对了,但是当我用 "ejabberdctl muc_online_rooms global" 检查时,它没有列出一个。
base url 之后的任何错误命令也向我返回了相同的响应。那我做错了什么?
编辑:我当然也包含了其余模块本身:
mod_rest:
allowed_ips:
- "127.0.0.1"
ejabberd 正在侦听连接,默认配置不限制它们来自哪里。所以是的,您可以从本地主机发送 REST API 查询。
事实上,一旦你开始工作,你可以配置监听器只接受来自本地主机的连接。
如果我的措辞有点不妥,请多多包涵。 我基本上想做的是编写一个脚本,该脚本 运行s 在 ejabberd 服务 运行 正在运行的服务器上。 这个脚本应该创建一个聊天室并自动订阅用户。
我知道这可以通过 REST API 但我不想通过来自外部但来自同一物理服务器内部的连接来触发它。
或者 goto 方法会是 运行 通过本地主机调用 API 吗?
更新: 正如所怀疑的那样,我可以简单地通过本地主机调用 REST API。但我还是卡住了。这可能是我的配置或调用中的一些错字,所以我将在这里分享我的尝试:
您好,感谢您的回复。我自己走到这一步,但没有得到预期的结果。
所以我在我的 yml 文件中配置了必要的部分,如下所示:
listen:
-
port: 5285
module: ejabberd_http
request_handlers:
"/rest": mod_rest
并将本地主机添加到主机。 然后我尝试访问这样的 REST 函数:
curl -X POST -i -H "Content-type: application/json" http://localhost:5285/rest/create_room -d
'
{
"name":"testroom",
"service":"mychatservice.host.com",
"host":"host.com"
}
'
我得到了这样的回复:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 21
Try POSTing a stanza.
我认为 200 代码意味着我做对了,但是当我用 "ejabberdctl muc_online_rooms global" 检查时,它没有列出一个。 base url 之后的任何错误命令也向我返回了相同的响应。那我做错了什么?
编辑:我当然也包含了其余模块本身:
mod_rest:
allowed_ips:
- "127.0.0.1"
ejabberd 正在侦听连接,默认配置不限制它们来自哪里。所以是的,您可以从本地主机发送 REST API 查询。
事实上,一旦你开始工作,你可以配置监听器只接受来自本地主机的连接。