Prosody服务器是否可以向外部API发出HTTP请求

时间:2018-03-14 13:07:55

标签: http xmpp prosody-im

Prosody服务器有几个模块,允许它响应HTTP请求。

例如,mod_http_rest允许我在端口5280上发出POST请求,并将XMPP节作为有效负载,并且Prosody服务器通过发送该节来响应。

但是,我正在寻找一个相反的模块:即通过常规方式接收XMPP消息,并使用该消息作为有效负载向指定服务器发出HTTP POST请求。

我似乎无法找到任何可以执行此操作的模块。有这样的事吗?

如果没有,Prosody API中是否有任何可用的功能可以编写这样的模块?

或者,有充分的理由说明为什么这可能是一个坏主意?

2 个答案:

答案 0 :(得分:1)

我不知道是否已经有一个模块,但有一种方法可以自己实现。几个月前我为特定目的制作了自己的模块,并使用net.http作为文档说:

  

是用于向远程服务器发出非阻塞HTTP请求的API。

因此,您应该检查here中的文档,以便您可以像以下一样使用它:

local req = require "net.http"
req.request( URL, opts, callBack )

其中opts是你在json中的选项,而callBack是一个定义你想对响应做什么的函数。

我希望它有所帮助。

答案 1 :(得分:1)

要回答您的问题,是的,Prosody可以向外部服务发出HTTP请求。

您描述的模块(采用XMPP并通过HTTP转发它)不存在,但没有理由这样做。所以我刚刚发布了一个提供此功能的模块:https://modules.prosody.im/mod_component_http.html