【发布时间】:2016-07-11 20:04:02
【问题描述】:
我想将 HTTP 请求转换为 MQTT 请求。因此,我收到了 HTTP 请求,其中包含要发布的主题和消息等信息。我必须将提供的消息发布到提供的主题。
我可以发布消息,但问题是我只能为我使用的函数提供主题和有效负载。这是我编写的要发布的代码:
Data = mochiweb_request:parse_post(Req),
{RegisterFun, PublishFun, SubscribeFun} = vmq_reg:direct_plugin_exports(http_to_mqtt),
Topic = get_value("topic", Data),
List_of_topics = string:tokens(Topic, "/"),
Lot = lists:map(fun(X) -> list_to_binary(X) end, List_of_topics),
Payload = list_to_binary(get_value("message", Data)),
error_logger:info_msg("Topics: ~p~nPayload: ~p",[Lot, Payload]),
PublishFun(Lot,Payload),
Req:ok({"text/html", [], "<p>Thank you. <p>"})
这里我从 vmq_reg 获得的 PublishFun 只能允许提供主题和消息。有没有其他方法可以发布一条消息,为 Qos、Retain 和 Dup 提供价值。
我正在使用 mochiweb 创建一个服务器并将其用作 vernemq 中的插件。
【问题讨论】: