首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EMQTT - emq_plugin_template只向网关客户端发送到API (SQL)

EMQTT - emq_plugin_template只向网关客户端发送到API (SQL)
EN

Stack Overflow用户
提问于 2018-09-18 11:02:12
回答 1查看 561关注 0票数 1

我遵循了Ravi关于使用EMQ和api接口将MQTT消息传递到SQL的教程(他还从这里得到了一些帮助,以使相关插件工作)。

我对Erlang + EMQ完全陌生,对于解决为什么在从EMQ插件发布时只保存我网关的消息的任何帮助都是非常感谢的:


  • 当我通过HTTP与postman一起发布时,日志会被很好地保存到SQL fine中。
  • 当我连接到代理并使用MQTTfx发布主题时,它也会很好地保存到SQL中(通过插件)。
  • 当我的网关发布到主题时,已发布的消息不会登录到SQL中(再次通过插件),但是可以发布该主题。

SQL表只有一个字符串字段,允许null。示例网关消息(如果从postman发布到api或发布在MQTTfx的主题上,则保存良好):$GPRP,745HHBCC5FF、EC16CRH9FFC、$GPRP,745HHBCC5FF

我使用“emq_plugin_template.erl”和“on_message_publish”发送请求。插件编译没有错误,EMQ重新启动,插件在板上启用,运行平稳。我也订阅了正确的主题,当然,在网关上。

代码语言:javascript
复制
on_message_publish(Message, _Env) ->
    io:format("publish ~s~n", [emqttd_message:format(Message)]),

MessageBin = element(12, Message),
MessageStr = binary_to_list(MessageBin),

inets:start(),
Method = post,
URL = "http://127.0.0.1/api/v2/GatewaySQL/1234",
Header = [{"X-DreamFactory-Api-Key", "1234"}],
Type = "application/json",
%%Body = MessageStr, %%just that didn't work with gateway
Body = "{\"resource\":[{\"TagRAW\":\"" ++ MessageStr ++ "\"}]}",
HTTPOptions = [],
Options = [],
R = httpc:request(Method, {URL, Header, Type, Body},HTTPOptions,Options),
    {ok, Message}.

检查QOS:我已经确认了QOS (QOS 0消息)主题订阅是正确的,是否应该检查其他地方是否不匹配?不过,来自MQTTfx的相同的QOS保存得很好,并在主题上发布了。

在接收到的消息中删除逗号:我只是为了以防万一尝试从消息中删除逗号(下面的尝试之一中的$进行了更多的尝试,一些编译好了,但这时代理可能被卡住了):

代码语言:javascript
复制
%%lists:delete($$,MessageStr),
%%lists:flatten(MessageStr),            %%tried without flattening it as well
%%Segmented = string:tokens(MessageStr, ","),
%%lists:flatten(Segmented),

%%IOMessageStr = io_lib:format("~w",[MessageStr]),
%%Flattened = lists:flatten(IOMessageStr),

谢谢你抽出时间:)

EN

回答 1

Stack Overflow用户

发布于 2019-04-10 09:53:35

试着取代

代码语言:javascript
复制
MessageBin = element(12, Message),

使用

代码语言:javascript
复制
MessageBin = element(8, Message),

希望这会对你有用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52385110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档