我正在为我们的一个项目配置ejabber服务器。在此我们需要从ejabberd-contrib配置mod_rest模块(https://github.com/processone/ejabberd-contrib)。以下是我的配置(YAML) 在听
port: 5280
module: ejabberd_http
request_handlers:
"/rest": mod_rest
web_admin: true
http_poll: true
http_bind: true
## register: true
captcha: true
modules:
mod_rest:
allowed_ips:
- "host_one_ip"
- "host_one_ip"
access_commands:
- "registered_users"
- "connected_users"
allowed_destinations:
- "all"
但每当我试图用其余的(curl call)命中ejabberd命令时,它给我“TryPOSTING Stanza”
prompt# curl --data 'registered_users domain' -X POST http://host:5280/rest/
Try POSTing a stanza.
我试图通过论坛但却找不到任何有用的东西
我是ejabber和erlang的新手。这个方向的任何指针都非常有用。如果需要更多详细信息,请与我们联系。
答案 0 :(得分:2)
伙计们我已经找到了这个问题。我已经安装了Ejabberd 14.05版本。 mod_rest模块 包括ejabberd_http.hrl文件的dev_include目录。在Ejabberd 14.05中,ejabberd_http.hrl的记录被更改。 “opts = [] :: list(),”是ejabber-contrib的include文件夹中的额外标题。我相应地调整了头部位置并编译模块。它对我有用:)有了这个我使用mod_rest工作的ejabberd命令。 现在我面临使用mod_rest消耗Stanzas的问题:(。如果有人对此有任何想法请告诉我。
答案 1 :(得分:0)
我试试这个,然后工作:
在我的情况下,我使用ejabberd二进制安装,以及安装文件夹 / LIB / ejabberd / XXXX
编译来自ejabberd-contrib的mod_rest.erl,这里是引用,https://www.ejabberd.im/ejabberd-contrib
我使用这个命令编译:
erlc -I /lib/ejabberd/include your_mod_rest_source_file
如果成功,你将拥有.beam文件,之后将mod_rest.beam复制到ejabberd安装文件夹
cp ~/ejabberd-contrib/mod_rest/src/mod_rest.beam /lib/ejabberd/ebin/
比配置ejabberd.yml在我的情况下,yml驻留在(/etc/ejabberd/ejabberd.yml)中,如下所示:
https://github.com/processone/ejabberd-contrib/issues/45#issuecomment-69767670
答案 2 :(得分:-1)
我认为你误解了ReST模块的目的。 从文档中,您应该向它发送XMPP节: https://github.com/processone/ejabberd-contrib/tree/master/mod_rest
但是,您要发送纯文本,而不是XMPP节(甚至不是XML)。