Prosody服务器有几个模块,允许它响应HTTP请求。
例如,mod_http_rest允许我在端口5280上发出POST请求,并将XMPP节作为有效负载,并且Prosody服务器通过发送该节来响应。
但是,我正在寻找一个相反的模块:即通过常规方式接收XMPP消息,并使用该消息作为有效负载向指定服务器发出HTTP POST请求。
我似乎无法找到任何可以执行此操作的模块。有这样的事吗?
如果没有,Prosody API中是否有任何可用的功能可以编写这样的模块?
或者,有充分的理由说明为什么这可能是一个坏主意?
答案 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