环境信息
- EMQ X 版本:4.3.1
- 操作系统及版本:centos7
- 其他
问题描述
钩子程序已经可以接收到emqx发过来的消息(如topic是:aaa\bbb),现在我们想直接给终端回复一个消息(如topic:aaa\bbb_reply),钩子服务需要怎么处理?
配置文件及日志
钩子程序已经可以接收到emqx发过来的消息(如topic是:aaa\bbb),现在我们想直接给终端回复一个消息(如topic:aaa\bbb_reply),钩子服务需要怎么处理?
你们有没计划直接钩子服务能发布topic?如 HookProviderGrpc.HookProviderImplBase增加已经接口sendMessage,在原来接口onMessagePublish中的参数StreamObserverreply = ValuedResponse.newBuilder().setBoolResult(true).setType(ValuedResponse.ResponsedType.STOP_AND_RETURN).build()增加类型(类似:ResponsedType.STOP_AND_RETURN),当是该类型就发送消息给emqx broker,这样终端订阅就能接受到消息了;
感觉这样使用更加符合业务场景;调用http api虽然也能处理,然http效率方面肯定没有grpc好。
谢谢!
1、我不是官方的。
2、使用钩子扩展目前也能实现你说的情况,只不过就是自己写业务逻辑(收到消息后,判断是否需要回复,需要的话调用发布接口去发布主题)。
3、你的需要回复,是用来判断EMQX是否收到还是根据主题来决定?第一种情况,指定qos的值就可以,第二种目前只能根据你的业务写。
我们是根据topic来判断是否回复的,非常感谢!